summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.fr.texi4270
-rw-r--r--doc/guix.texi70
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/packages/admin.scm156
-rw-r--r--gnu/packages/astronomy.scm7
-rw-r--r--gnu/packages/audio.scm38
-rw-r--r--gnu/packages/authentication.scm77
-rw-r--r--gnu/packages/backup.scm9
-rw-r--r--gnu/packages/bioconductor.scm37
-rw-r--r--gnu/packages/bioinformatics.scm105
-rw-r--r--gnu/packages/bittorrent.scm58
-rw-r--r--gnu/packages/cdrom.scm10
-rw-r--r--gnu/packages/code.scm8
-rw-r--r--gnu/packages/compression.scm26
-rw-r--r--gnu/packages/cran.scm232
-rw-r--r--gnu/packages/crypto.scm14
-rw-r--r--gnu/packages/databases.scm58
-rw-r--r--gnu/packages/dictionaries.scm9
-rw-r--r--gnu/packages/disk.scm33
-rw-r--r--gnu/packages/django.scm4
-rw-r--r--gnu/packages/dns.scm16
-rw-r--r--gnu/packages/elixir.scm2
-rw-r--r--gnu/packages/emacs.scm12
-rw-r--r--gnu/packages/emulators.scm15
-rw-r--r--gnu/packages/erlang.scm16
-rw-r--r--gnu/packages/fontutils.scm27
-rw-r--r--gnu/packages/freedesktop.scm10
-rw-r--r--gnu/packages/game-development.scm4
-rw-r--r--gnu/packages/games.scm64
-rw-r--r--gnu/packages/gd.scm4
-rw-r--r--gnu/packages/gettext.scm54
-rw-r--r--gnu/packages/glib.scm10
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/gnupg.scm2
-rw-r--r--gnu/packages/gtk.scm10
-rw-r--r--gnu/packages/haskell-check.scm82
-rw-r--r--gnu/packages/haskell-web.scm109
-rw-r--r--gnu/packages/haskell.scm426
-rw-r--r--gnu/packages/image.scm7
-rw-r--r--gnu/packages/imagemagick.scm2
-rw-r--r--gnu/packages/language.scm40
-rw-r--r--gnu/packages/libevent.scm9
-rw-r--r--gnu/packages/license.scm19
-rw-r--r--gnu/packages/lighting.scm4
-rw-r--r--gnu/packages/linux.scm28
-rw-r--r--gnu/packages/mail.scm40
-rw-r--r--gnu/packages/markup.scm9
-rw-r--r--gnu/packages/marst.scm2
-rw-r--r--gnu/packages/maths.scm18
-rw-r--r--gnu/packages/mp3.scm4
-rw-r--r--gnu/packages/music.scm46
-rw-r--r--gnu/packages/ncurses.scm8
-rw-r--r--gnu/packages/networking.scm196
-rw-r--r--gnu/packages/openldap.scm200
-rw-r--r--gnu/packages/password-utils.scm96
-rw-r--r--gnu/packages/patches/aegisub-icu59-include-unistr.patch12
-rw-r--r--gnu/packages/patches/clementine-fix-sqlite.patch23
-rw-r--r--gnu/packages/patches/gdm-CVE-2018-14424.patch172
-rw-r--r--gnu/packages/patches/openssl-1.1.0-CVE-2018-0495.patch152
-rw-r--r--gnu/packages/patches/openssl-1.1.0-CVE-2018-0732.patch50
-rw-r--r--gnu/packages/patches/qemu-CVE-2018-11806.patch105
-rw-r--r--gnu/packages/patches/racket-store-checksum-override.patch42
-rw-r--r--gnu/packages/patches/translate-shell-fix-curl-tests.patch60
-rw-r--r--gnu/packages/pdf.scm4
-rw-r--r--gnu/packages/perl-check.scm107
-rw-r--r--gnu/packages/perl.scm775
-rw-r--r--gnu/packages/photo.scm2
-rw-r--r--gnu/packages/profiling.scm17
-rw-r--r--gnu/packages/protobuf.scm4
-rw-r--r--gnu/packages/python-web.scm32
-rw-r--r--gnu/packages/python.scm28
-rw-r--r--gnu/packages/samba.scm4
-rw-r--r--gnu/packages/scheme.scm3
-rw-r--r--gnu/packages/security-token.scm28
-rw-r--r--gnu/packages/skarnet.scm58
-rw-r--r--gnu/packages/spice.scm8
-rw-r--r--gnu/packages/statistics.scm16
-rw-r--r--gnu/packages/tcl.scm2
-rw-r--r--gnu/packages/tex.scm15
-rw-r--r--gnu/packages/tls.scm24
-rw-r--r--gnu/packages/version-control.scm27
-rw-r--r--gnu/packages/video.scm26
-rw-r--r--gnu/packages/virtualization.scm5
-rw-r--r--gnu/packages/web.scm199
-rw-r--r--gnu/packages/wm.scm7
-rw-r--r--gnu/packages/xdisorg.scm4
-rw-r--r--gnu/packages/xfig.scm4
-rw-r--r--gnu/packages/xml.scm66
-rw-r--r--gnu/packages/xorg.scm7
-rw-r--r--gnu/services/cgit.scm13
-rw-r--r--gnu/services/databases.scm9
-rw-r--r--gnu/services/messaging.scm9
-rw-r--r--gnu/services/security-token.scm84
-rw-r--r--gnu/services/web.scm11
-rw-r--r--gnu/tests/security-token.scm71
-rw-r--r--guix/import/cpan.scm4
-rw-r--r--guix/import/hackage.scm124
-rw-r--r--guix/scripts/import/hackage.scm37
-rw-r--r--po/doc/guix-manual.fr.po2067
-rw-r--r--po/guix/da.po774
100 files changed, 7257 insertions, 4861 deletions
diff --git a/doc/guix.fr.texi b/doc/guix.fr.texi
index 8eda0087e9..6dc7f90555 100644
--- a/doc/guix.fr.texi
+++ b/doc/guix.fr.texi
@@ -30,12 +30,12 @@ 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
-Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright
-@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément
-Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright
-@copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo
-Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* 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 Mathieu Othacehe@*
+Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017
+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
@@ -44,7 +44,8 @@ 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
+Gerwitz@* Copyright @copyright{} 2018 Pierre-Antoine Rouby@* Copyright
+@copyright{} 2018 Gábor Boskovits@*
 
 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
@@ -100,6 +101,15 @@ Documentation License ».
 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.
+This manual is also available in French (@pxref{Top,,, guix.fr, Manuel de
+référence 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}.
+
 @menu
 * Introduction::             Qu'est-ce que Guix ?
 * Installation::             Installer Guix.
@@ -184,6 +194,7 @@ Interface de programmation
 * La monad du dépôt::      Interface purement fonctionnelle avec le 
                                dépôt.
 * G-Expressions::            Manipuler les expressions de construction.
+* Invoking guix repl::       Fiddling with Guix interactively.
 
 Définition des paquets
 
@@ -307,7 +318,7 @@ Services
 * 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::  L'outil TLP@.
+* Power Management Services::  Extending battery life.
 * Services audio::           MPD@.
 * Services de virtualisation::  Services de virtualisation.
 * Services de contrôle de version::  Fournit des accès distants à des 
@@ -497,18 +508,18 @@ L'installation se comme ceci :
 @enumerate
 @item
 @cindex téléchargement du Guix binaire
-Téléchargez l'archive binaire depuis
-@indicateurl{ftp://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.
+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.
 
 @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 ftp://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
+$ 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
 
 Si cette commande échoue parce que vous n'avez pas la clef publique requise,
@@ -695,8 +706,8 @@ ultérieure, dont 2.2.x,
 (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,,
 gnutls-guile, GnuTLS-Guile}),
 @item
-@c FIXME: Specify a version number once a release has been made.
-@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3} ;
+@uref{https://notabug.org/civodul/guile-sqlite3, Guile-SQLite3}, version
+0.1.0 or later;
 @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
@@ -1081,8 +1092,8 @@ Il y a un certain nombre de champs facultatifs que vous pouvez remplir :
 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 à utiliser lors de la connexion à la machine, au
-format OpenSSH@.
+The SSH private key file to use when connecting to the machine, in OpenSSH
+format.  This key must not be protected with a passphrase.
 
 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.
@@ -1469,11 +1480,10 @@ 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} — utilisées 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 s'il s'agit de racines du GC@.  @xref{Invoquer guix gc}
-pour plus d'informations sur les racines du GC@.
+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{Invoquer guix gc}, for more on GC roots.
 
 @item --gc-keep-derivations[=yes|no]
 Dire si le ramasse-miettes (GC) doit garder les dérivations correspondant à
@@ -1485,12 +1495,14 @@ 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.
 
-Remarquez qu'avec @code{--gc-keep-derivations} et @code{--gc-keep-outputs},
-le GC gardera tous les prérequis de construction (les sources, le
-compilateur, les bibliothèques, et les autres outils de construction) des
-objets utilisés dans le dépôt, indépendamment du fait qu'ils soient ou non
-utilisés.  Cela est pratique pour les développeurs car ça leur fait gagner
-du temps de reconstruction et de téléchargement.
+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.
 
 @item --impersonate-linux-2.6
 Sur les système basés sur Linux, se faire passer pour Linux 2.6.  Cela
@@ -2562,7 +2574,7 @@ 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{fallback-option,, common build option @code{--fallback}}).
+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,
@@ -2603,7 +2615,7 @@ 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{build-check, @command{guix build --check}}).
+(@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
@@ -2907,17 +2919,23 @@ Génération 1	10 juin 2018 00:18:18
     branche : origin/master
     commit : 65956ad3526ba09e1f7a40722c96c6ef7c0936fe
 
-Génération 2	11 juin 2018 11:02:49
+Generation 2	Jun 11 2018 11:02:49
   guix e0cc7f6
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : origin/master
-    commit : e0cc7f669bec22c37481dd03a7941c7d11a64f1d
-
-Génération 3	13 juin 2018 23:31:07	(actuelle)
+    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
-    URL du dépôt : https://git.savannah.gnu.org/git/guix.git
-    branche : origin/master
-    commit : 844cc1c8f394f03b404c5bb3aee086922373490c
+    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
 
 Ce profil @code{~/.config/guix/current} fonctionne comme les autres profils
@@ -3407,6 +3425,7 @@ paquets à haut-niveau.
 * La monad du dépôt::      Interface purement fonctionnelle avec le 
                                dépôt.
 * G-Expressions::            Manipuler les expressions de construction.
+* Invoking guix repl::       Fiddling with Guix interactively.
 @end menu
 
 @node Définition des paquets
@@ -4199,6 +4218,21 @@ construction.  Le paquet @code{glib} qui fournit
 Ces deux phases sont exécutées après la phase @code{install}.
 @end defvr
 
+@defvr {Scheme Variable} guile-build-system
+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.
+
+This build system supports cross-compilation by using the @code{--target}
+option of @command{guild compile}.
+
+Packages built with @code{guile-build-system} must provide a Guile package
+in their @code{native-inputs} field.
+@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
@@ -4783,45 +4817,50 @@ 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}.
 
-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}.
-
-@deffn {Scheme Procedure} 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] 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))}.
-
-@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.
-
-@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.
-
-See the @code{derivation} procedure for the meaning of
-@var{references-graphs}, @var{allowed-references},
-@var{disallowed-references}, @var{local-build?}, and @var{substitutable?}.
+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
-Here's an example of a single-output derivation that creates a directory
-containing one file:
+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")))
@@ -4840,33 +4879,36 @@ containing one file:
 
 @cindex monad
 
-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.
-
-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.
-
-@cindex monadic values
-@cindex monadic functions
-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}.
-
-Consider this ``normal'' procedure:
+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 monad très utile pour notre usage, la @dfn{monad du dépôt}.
+Les monads 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 monad — 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)
-  ;; Return a derivation that symlinks the 'bash' executable.
+  ;; 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")))
@@ -4874,27 +4916,28 @@ Consider this ``normal'' procedure:
                                   `(symlink ,sh %output))))
 @end example
 
-Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a
-monadic function:
+En utilisant @code{(guix monads)} et @code{(guix gexp)}, on peut la réécrire
+en une fonction monadique :
 
 @example
 (define (sh-symlink)
-  ;; Same, but return a monadic value.
+  ;; 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
 
-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}.
+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}.
 
-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}):
+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)
@@ -4906,28 +4949,32 @@ since it will take place implicitly, as we will see later
 @c See
 @c <https://syntaxexclamation.wordpress.com/2014/06/26/escaping-continuations/>
 @c for the funny quote.
-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}:
+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 monad comme d'un immeuble
+en flamme, en courant ».  Le jeu de mot est perdu à la traduction : courrir
+et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de
+la monad 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
 
-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:
+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
 
-The latter enters a recursive REPL, where all the return values are
-automatically run through the store:
+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
@@ -4940,27 +4987,28 @@ scheme@@(guile-user)>
 @end example
 
 @noindent
-Note that non-monadic values cannot be returned in the @code{store-monad}
-REPL.
+Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la console
+@code{store-monad}.
 
-The main syntactic forms to deal with monads in general are provided by the
-@code{(guix monads)} module and are described below.
+Les formes syntaxiques principales pour utiliser des monads en général sont
+disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous.
 
-@deffn {Scheme Syntax} with-monad @var{monad} @var{body} ...
-Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in
-@var{monad}.
+@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 {Scheme Syntax} return @var{val}
-Return a monadic value that encapsulates @var{val}.
+@deffn {Syntaxe Scheme} return @var{val}
+Renvoie une valeur monadique qui encapsule @var{val}.
 @end deffn
 
-@deffn {Scheme Syntax} >>= @var{mval} @var{mproc} ...
-@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:
+@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
@@ -4975,60 +5023,63 @@ There can be one @var{mproc} or several of them, as in this example:
 @end example
 @end deffn
 
-@deffn {Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @
+@deffn {Syntaxe Scheme} mlet @var{monad} ((@var{var} @var{mval}) ...) @
+       @var{body} ...
+@deffnx {Syntaxe Scheme} mlet* @var{monad} ((@var{var} @var{mval}) ...) @
        @var{body} ...
-@deffnx {Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @
-       @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}.
-
-@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let}
+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 {Scheme System} mbegin @var{monad} @var{mexp} ...
-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.
+@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.
 
-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.
+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 {Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ...
-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.
+@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 monad
+actuelle.  Cahque expression dans la séquence doit être une expression
+monadique.
 @end deffn
 
-@deffn {Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ...
-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.
+@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 monad
+actuelle.  Cahque expression dans la séquence doit être une expression
+monadique.
 @end deffn
 
-@cindex state monad
-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.
+@cindex monad d'état
+Le module @code{(guix monads)} fournit la @dfn{monad d'état} qui permet à
+une valeur supplémentaire — l'état — d'être enfilée à travers les appels de
+procédures.
 
-@defvr {Scheme Variable} %state-monad
-The state monad.  Procedures in the state monad can access and change the
-state that is threaded.
+@defvr {Variable Scheme} %state-monad
+La monad d'état.  les procédure dans la monad d'état peuvent accéder et
+modifier l'état qui est enfilé.
 
-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:
+Considérez l'exemple ci-dessous.  La procédure @code{square} renvoie une
+valeur dans la monad d'état.  Elle renvoie le carré de son argument, mais
+incrémente aussi la valeur actuelle de l'état :
 
 @example
 (define (square x)
@@ -5042,71 +5093,82 @@ the current state value:
 @result{} 3
 @end example
 
-When ``run'' through @var{%state-monad}, we obtain that additional state
-value, which is the number of @code{square} calls.
+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 {Monadic Procedure} current-state
-Return the current state as a monadic value.
+@deffn {Procédure Monadic} current-state
+Renvoie l'état actuel dans une valeur monadique.
 @end deffn
 
-@deffn {Monadic Procedure} set-current-state @var{value}
-Set the current state to @var{value} and return the previous state as a
-monadic value.
+@deffn {Procédure Monadic} 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 {Monadic Procedure} state-push @var{value}
-Push @var{value} to the current state, which is assumed to be a list, and
-return the previous state as a monadic value.
+@deffn {Procédure Monadic} 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 {Monadic Procedure} state-pop
-Pop a value from the current state and return it as a monadic value.  The
-state is assumed to be a list.
+@deffn {Procédure Monadic} 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 {Scheme Procedure} run-with-state @var{mval} [@var{state}]
-Run monadic value @var{mval} starting with @var{state} as the initial
-state.  Return two values: the resulting value, and the resulting state.
+@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
 
-The main interface to the store monad, provided by the @code{(guix store)}
-module, is as follows.
+L'interface principale avec la monad du dépôt, fournit par le module
+@code{(guix store)}, est la suivante.
 
-@defvr {Scheme Variable} %store-monad
-The store monad---an alias for @var{%state-monad}.
+@defvr {Variable Scheme} %store-monad
+La monad du dépôt — un alias pour @var{%state-monad}.
 
-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.)
+Les valeurs dans la monad du dépôt encapsulent des accès au dépôt.  Lorsque
+son effet est requis, une valeur de la monad du dépôt doit être « évaluée »
+en la passant à la procédure @code{run-with-store} (voir plus bas).
 @end defvr
 
-@deffn {Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]
-Run @var{mval}, a monadic value in the store monad, in @var{store}, an open
-store connection.
+@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 monad du dépôt, dans
+@var{store}, une connexion ouvert au dépôt.
 @end deffn
 
-@deffn {Monadic Procedure} text-file @var{name} @var{text} [@var{references}]
+@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 {Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]
 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.
+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.
 @end deffn
 
-@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @
-         [#: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.
+@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.
 
-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.
+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.
 
-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.
+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.
 
-The example below adds a file to the store, under two different names:
+L'exemple ci-dessous ajoute un fichier au dépôt, sous deux noms différents :
 
 @example
 (run-with-store (open-connection)
@@ -5119,20 +5181,23 @@ The example below adds a file to the store, under two different names:
 
 @end deffn
 
-The @code{(guix packages)} module exports the following package-related
-monadic procedures:
-
-@deffn {Monadic Procedure} package-file @var{package} [@var{file}] @
-       [#: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.
+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 {Monadic Procedure} package->derivation @var{package} [@var{system}]
-@deffnx {Monadic Procedure} package->cross-derivation @var{package} @
-          @var{target} [@var{system}] Monadic version of @code{package-derivation} and
+@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
 
@@ -5141,64 +5206,69 @@ is true, use it as a cross-compilation target triplet.
 @section G-Expressions
 
 @cindex G-expression
-@cindex build code quoting
-So we have ``derivations'', which represent a sequence of build actions to
-be performed to produce an item in the store (@pxref{Dérivations}).  These
-build actions are performed when asking the daemon to actually build the
-derivations; they are run by the daemon in a container (@pxref{Invoquer guix-daemon}).
-
-@cindex strata of code
-It should come as no surprise that we like to write these build actions in
-Scheme.  When we do that, we end up with two @dfn{strata} of Scheme
-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.
-
-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.
-
-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:
+@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} ett @code{unquote-splicing} respectivement
+(@pxref{Expression Syntax, @code{quasiquote},, guile, GNU Guile Reference
+Manual}).  Cependant il y a des différences majeures :
 
 @itemize
 @item
-Gexps are meant to be written to a file and run or manipulated by other
-processes.
+Les Gexps sont conçues pour être écrites dans un fichier et être lancées ou
+manipulées par d'autres processus.
 
 @item
-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.
+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
-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.
+Les gexps transportent des informatinos 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 lowering, of high-level objects in gexps
-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.)
+@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).
 
-To illustrate the idea, here is an example of a gexp:
+Pour illustrer cette idée, voici un exemple de gexp :
 
 @example
 (define build-exp
@@ -5209,27 +5279,28 @@ To illustrate the idea, here is an example of a gexp:
                "list-files")))
 @end example
 
-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}:
+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
 
-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.
+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 cross compilation
-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:
+@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"
@@ -5243,16 +5314,17 @@ package build:
 @end example
 
 @noindent
-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.
+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 imported modules, for gexps
+@cindex modules importés, pour les gexps
 @findex with-imported-modules
-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:
+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))
@@ -5267,21 +5339,21 @@ so those modules should be imported in the ``build environment''.  The
 @end example
 
 @noindent
-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.
+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 module closure
+@cindex closure de module
 @findex source-module-closure
-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:
+Typiquement, vous voudriez que la @emph{closure} complète du mondule 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))   ;for 'source-module-closure'
+(use-modules (guix modules))   ;pour 'source-module-closure'
 
 (with-imported-modules (source-module-closure
                          '((guix build utils)
@@ -5293,15 +5365,16 @@ which comes in handy in this case:
                         @dots{})))
 @end example
 
-@cindex extensions, for gexps
+@cindex extensions, des gexps
 @findex with-extensions
-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:
+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))  ;for 'guile-json'
+(use-modules (gnu packages guile))  ;pour 'guile-json'
 
 (with-extensions (list guile-json)
   (gexp->derivation "something-with-json"
@@ -5310,72 +5383,73 @@ available on the build side, here's how you would do it:
                         @dots{})))
 @end example
 
-The syntactic form to construct gexps is summarized below.
+La forme syntaxique pour construire des gexps est résumée ci-dessous.
 
-@deffn {Scheme Syntax} #~@var{exp}
-@deffnx {Scheme Syntax} (gexp @var{exp})
-Return a G-expression containing @var{exp}.  @var{exp} may contain one or
-more of the following forms:
+@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})
-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.,
+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}.
 
-If @var{obj} is a list, it is traversed and references to supported objects
-are substituted similarly.
+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.
 
-If @var{obj} is another gexp, its contents are inserted and its dependencies
-are added to those of the containing gexp.
+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.
 
-If @var{obj} is another kind of object, it is inserted as is.
+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})
-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{Des paquets avec plusieurs résultats}).
+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})
-Same as @code{ungexp}, but produces a reference to the @emph{native} build
-of @var{obj} when used in a cross compilation context.
+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}])
-Insert a reference to derivation output @var{output}, or to the main output
-when @var{output} is omitted.
+Insère une référence à la sortie @var{output} de la dérivation, ou à la
+sortie principale lorsque @var{output} est omis.
 
-This only makes sense for gexps passed to @code{gexp->derivation}.
+Cela ne fait du sens que pour les gexps passées à @code{gexp->derivation}.
 
 @item #$@@@var{lst}
 @itemx (ungexp-splicing @var{lst})
-Like the above, but splices the contents of @var{lst} inside the containing
-list.
+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})
-Like the above, but refers to native builds of the objects listed in
-@var{lst}.
+Comme au dessus, mais se réfère à la construction native des objets listés
+dans @var{lst}.
 
 @end table
 
-G-expressions created by @code{gexp} or @code{#~} are run-time objects of
-the @code{gexp?} type (see below.)
+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 {Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}
-Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in
-their execution environment.
+@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.
 
-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:
+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)
@@ -5385,63 +5459,71 @@ a file-like object:
 @end example
 
 @noindent
-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.
+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.
 
-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{}.
+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 {Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}
-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.
+@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)}.
 
-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{}.
+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 {Scheme Procedure} gexp? @var{obj}
-Return @code{#t} if @var{obj} is a G-expression.
+@deffn {Procédure Scheme} gexp? @var{obj}
+Renvoie @code{#t} si @var{obj} est une G-expression.
 @end deffn
 
-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{La monad du dépôt}, for more information about
-monads.)
-
-@deffn {Monadic Procedure} 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"] @
+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 monad 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] [#: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}.
-
-@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))}.
+[#:disallowed-references #f] @
+[#:leaked-env-vars #f] @
+[#:script-name (string-append @var{name} "-builder")] @
+[#:deprecation-warnings #f] @
+[#:local-build? #f] [#:substitutable? #t] [#: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.
 
-@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"}.
-
-@var{graft?} determines whether packages referred to by @var{exp} should be
-grafted when applicable.
-
-When @var{references-graphs} is true, it must be a list of tuples of one of
-the following forms:
+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})
@@ -5451,85 +5533,92 @@ the following forms:
 (@var{file-name} @var{store-item})
 @end example
 
-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.
+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} 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.
+@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} determines whether to show deprecation warnings
-while compiling modules.  It can be @code{#f}, @code{#t}, or
-@code{'detailed}.
+@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}.
 
-The other arguments are as for @code{derivation} (@pxref{Dérivations}).
+Les autres arguments sont les mêmes que pour @code{derivation}
+(@pxref{Dérivations}).
 @end deffn
 
-@cindex file-like objects
-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:
+@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
 
-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.
-
-@deffn {Scheme Procedure} local-file @var{file} [@var{name}] @
-   [#: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}.
-
-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.
-
-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.
-
-This is the declarative counterpart of the @code{interned-file} monadic
-procedure (@pxref{La monad du dépôt, @code{interned-file}}).
+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 monad du dépôt, @code{interned-file}}).
 @end deffn
 
-@deffn {Scheme Procedure} plain-file @var{name} @var{content}
+@deffn {Procédure Scheme} plain-file @var{name} @var{content}
 Return an object representing a text file called @var{name} with the given
-@var{content} (a string) to be added to the store.
+@var{content} (a string or a bytevector) to be added to the store.
 
-This is the declarative counterpart of @code{text-file}.
+C'est la version déclarative de @code{text-file}.
 @end deffn
 
-@deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @
-          [#: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}.
+@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}.
 
-This is the declarative counterpart of @code{gexp->derivation}.
+C'est la version déclarative de @code{gexp->derivation}.
 @end deffn
 
-@deffn {Monadic Procedure} gexp->script @var{name} @var{exp} @
-  [#: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}.
+@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}.
 
-The example below builds a script that simply invokes the @command{ls}
-command:
+L'exemple ci-dessous construit un script qui invoque simplement la commande
+@command{ls} :
 
 @example
 (use-modules (guix gexp) (gnu packages base))
@@ -5539,9 +5628,9 @@ command:
                        "ls"))
 @end example
 
-When ``running'' it through the store (@pxref{La monad du dépôt,
-@code{run-with-store}}), we obtain a derivation that produces an executable
-file @file{/gnu/store/@dots{}-list-files} along these lines:
+Lorsqu'elle est « lancée » à travers le dépôt (@pxref{La monad 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
@@ -5550,107 +5639,115 @@ file @file{/gnu/store/@dots{}-list-files} along these lines:
 @end example
 @end deffn
 
-@deffn {Scheme Procedure} program-file @var{name} @var{exp} @
-          [#: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}.
+@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}.
 
-This is the declarative counterpart of @code{gexp->script}.
+C'est la version déclarative de @code{gexp->script}.
 @end deffn
 
-@deffn {Monadic Procedure} gexp->file @var{name} @var{exp} @
-            [#: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.
-
-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}.
-
-The resulting file holds references to all the dependencies of @var{exp} or
-a subset thereof.
+@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 {Scheme Procedure} derivation @var{store} @var{name} @var{builder} @
-Return an object representing the Scheme file @var{name} that contains
+@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}.
 
-This is the declarative counterpart of @code{gexp->file}.
+C'est la version déclarative de @code{gexp->file}.
 @end deffn
 
-@deffn {Monadic Procedure} text-file* @var{name} @var{text} @dots{}
-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.
+@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.
 
-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:
+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)
-  ;; Return the name of a shell script in the store that
-  ;; initializes the 'PATH' environment variable.
+  ;; 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
 
-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.
+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 {Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}
-Return an object representing store file @var{name} containing @var{text}.
-@var{text} is a sequence of strings and file-like objects, as in:
+@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
 
-This is the declarative counterpart of @code{text-file*}.
+C'est la version déclarative de @code{text-file*}.
 @end deffn
 
-@deffn {Scheme Procedure} file-union @var{name} @var{files}
-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:
+@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'"))))
+                                     "alias ls='ls --color=auto'"))))
 @end example
 
-This yields an @code{etc} directory containing these two files.
+Cela crée un répertoire @code{etc} contenant ces deux fichiers.
 @end deffn
 
-@deffn {Scheme Procedure} directory-union @var{name} @var{things}
-Return a directory that is the union of @var{things}, where @var{things} is
-a list of file-like objects denoting directories.  For example:
+@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
 
-yields a directory that is the union of the @code{guile} and @code{emacs}
-packages.
+crée un répertoire qui est l'union des paquets @code{guile} et @code{emacs}.
 @end deffn
 
-@deffn {Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}
-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.
+@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.
 
-As an example, consider this gexp:
+Par exemple, considérez cette gexp :
 
 @example
 (gexp->script "run-uname"
@@ -5658,7 +5755,7 @@ As an example, consider this gexp:
                                         "/bin/uname")))
 @end example
 
-The same effect could be achieved with:
+On peut obtenir le même effet avec :
 
 @example
 (gexp->script "run-uname"
@@ -5666,31 +5763,87 @@ The same effect could be achieved with:
                                         "/bin/uname")))
 @end example
 
-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}.
+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
 
 
-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.
+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 Invoking guix repl
+@section Invoking @command{guix repl}
 
-@cindex lowering, of high-level objects in gexps
-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.
+@cindex REPL, read-eval-print loop
+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:
 
-@deffn {Monadic Procedure} lower-object @var{obj} [@var{system}] @
-           [#: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>}.
-@end deffn
+@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 inferiors
+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.
+
+The available options are as follows:
+
+@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{extrémité}
+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 Utilitaires
@@ -5728,11 +5881,11 @@ Guix d'une manière pratique.
 
 @cindex construction de paquets
 @cindex @command{guix build}
-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{Invoquer guix package}).  Thus, it is mainly useful for
-distribution developers.
+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 :
 
@@ -5740,34 +5893,34 @@ La syntaxe générale est :
 guix build @var{options} @var{package-or-derivation}@dots{}
 @end example
 
-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:
+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
 
-Similarly, the following command builds all the available packages:
+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} 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{Modules de paquets}).
+@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}).
 
-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.
+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.
 
-There may be zero or more @var{options}.  The available options are
-described in the subsections below.
+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 
@@ -5781,56 +5934,60 @@ described in the subsections below.
 @node Options de construction communes
 @subsection Options de construction communes
 
-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:
+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{directory}
-@itemx -L @var{directory}
-Add @var{directory} to the front of the package module search path
+@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}).
 
-This allows users to define their own packages and make them visible to the
-command-line tools.
+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
-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{Débogage des échecs de construction}, for tips and tricks on how to debug build
-issues.
+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.
 
 @item --keep-going
 @itemx -k
-Keep going when some of the derivations fail to build; return only once all
-the builds have either completed or failed.
+Continue lorsque certaines dérivations échouent ; ne s'arrête que lorsque
+toutes les constructions ont soit réussies, soit échouées.
 
-The default behavior is to stop as soon as one of the specified derivations
-has failed.
+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
-Do not build the derivations.
+Ne pas construire les dérivations.
 
-@anchor{fallback-option}
+@anchor{option de repli}
 @item --fallback
-When substituting a pre-built binary fails, fall back to building packages
-locally (@pxref{Échec de substitution}).
+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}
-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}).
+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}).
 
-When @var{urls} is the empty string, substitutes are effectively disabled.
+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.
@@ -5838,202 +5995,208 @@ C'est-à-dire, toujours construire localement plutôt que de permettre le
 téléchargement de binaires pré-construits (@pxref{Substituts}).
 
 @item --no-grafts
-Do not ``graft'' packages.  In practice, this means that package updates
-available as grafts are not applied.  @xref{Mises à jour de sécurité}, for more
-information on 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}
-Build each derivation @var{n} times in a row, and raise an error if
-consecutive build results are not bit-for-bit identical.
+Construit chaque dérivation @var{n} fois d'affilé, et renvoie une erreur si
+les constructions consécutives ne sont pas identiques bit-à-bit.
 
-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{Invoquer guix challenge}, for more.
+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.
 
-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{Invoquer guix archive}), then rebuilding, and finally comparing the
-two results.
+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
-Do not attempt to offload builds @i{via} the ``build hook'' of the daemon
-(@pxref{Réglages du délestage du démon}).  That is, always build things locally
-instead of offloading builds to remote machines.
+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.
 
-By default, the daemon's setting is honored (@pxref{Invoquer guix-daemon,
-@code{--max-silent-time}}).
+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.
 
-By default, the daemon's setting is honored (@pxref{Invoquer guix-daemon,
-@code{--timeout}}).
+Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoquer guix-daemon, @code{--timeout}}).
 
 @item --verbosity=@var{level}
-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.
+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.
 
 @item --cores=@var{n}
 @itemx -c @var{n}
-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.
+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}
-Allow at most @var{n} build jobs in parallel.  @xref{Invoquer guix-daemon,
-@code{--max-jobs}}, for details about this option and the equivalent
-@command{guix-daemon} option.
+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}.
 
 @end table
 
-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.
+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)}.
 
-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.
+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 {Environment Variable} GUIX_BUILD_OPTIONS
-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:
+@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
 
-These options are parsed independently, and the result is appended to the
-parsed command-line options.
+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 package variants
-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{Définition des 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{package}=@var{source}
-@itemx --with-source=@var{package}@@@var{version}=@var{source}
-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{Invoquer guix download}).
+@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}).
 
-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}.
+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}.
 
-Likewise, when @var{version} is omitted, the version string is inferred from
-@var{source}; in the previous example, it is @code{2.0.10}.
+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}.
 
-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:
+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 mirroir 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
 
-As a developer, @code{--with-source} makes it easy to test release
-candidates:
+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{} or to build from a checkout in a pristine environment:
+@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{package}=@var{replacement}
-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}.
+@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}.
 
-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}:
+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
 
-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}.
+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}.
 
-This is implemented using the @code{package-input-rewriting} Scheme
-procedure (@pxref{Définition des paquets, @code{package-input-rewriting}}).
+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{package}=@var{replacement}
-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{Mises à jour de sécurité}, for more information on grafts.
+@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.
 
-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:
+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
 
-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!
+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 !
 
 @end table
 
 @node Options de construction supplémentaires
 @subsection Options de construction supplémentaires
 
-The command-line options presented below are specific to @command{guix
-build}.
+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.  Upon completion, the build
-log is kept in @file{/var} (or similar) and can always be retrieved using
-the @option{--log-file} option.
+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}.
 
-@item --file=@var{file}
+@item --file=@var{fichier}
 @itemx -f @var{fichier}
 
-Build the package or derivation that the code within @var{file} evaluates
-to.
+Construit le paquet ou la dérivation en lequel le code dans @var{file}
+s'évalue.
 
-As an example, @var{file} might contain a package definition like this
-(@pxref{Définition des paquets}):
+Par exemple, @var{file} peut contenir une définition de paquet comme ceci
+(@pxref{Définition des paquets}) :
 
 @example
 @verbatiminclude package-hello.scm
@@ -6041,47 +6204,50 @@ As an example, @var{file} might contain a package definition like this
 
 @item --expression=@var{expr}
 @itemx -e @var{expr}
-Build the package or derivation @var{expr} evaluates to.
+Construit le paquet ou la dérivation en lequel @var{expr} s'évalue.
 
-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.
+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.
 
-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}).
+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}).
 
-Lastly, @var{expr} may refer to a zero-argument monadic procedure
-(@pxref{La monad du dépôt}).  The procedure must return a derivation as a
-monadic value, which is then passed through @code{run-with-store}.
+Enfin, @var{expr} peut se référer à une procédure monadique à au moins un
+argument (@pxref{La monad 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
-Build the source derivations of the packages, rather than the packages
-themselves.
+Construit les dérivation source des paquets, plutôt que des paquets
+eux-même.
 
-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.
+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.
 
-The returned source tarball is the result of applying any patches and code
-snippets specified in the package @code{origin} (@pxref{Définition des paquets}).
+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
-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:
+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
-This value causes the @code{--sources} option to behave in the same way as
-the @code{--source} option.
+Cette valeur fait que l'option @code{--sources} se comporte comme l'option
+@code{--source}.
 
 @item all
-Build the source derivations of all packages, including any source that
-might be listed as @code{inputs}.  This is the default value.
+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
@@ -6091,9 +6257,10 @@ The following derivations will be built:
 @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.
+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.
 
 @example
 $ guix build --sources=transitive tzdata
@@ -6115,30 +6282,33 @@ 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
-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.
+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
 
-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.
+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
-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.
+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
 
-Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is
-enabled (@pxref{Services de virtualisation, @code{qemu-binfmt-service-type}}),
-you can build for any system for which a QEMU @code{binfmt_misc} handler is
-installed.
+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é.
 
-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{Réglages du délestage du démon}, for more information on offloading.
+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
@@ -6146,13 +6316,13 @@ 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{build-check}
+@anchor{vérification de la construction}
 @item --check
 @cindex déterminisme, vérification
 @cindex reproductibilité, vérification
-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.
+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
@@ -6164,36 +6334,40 @@ 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 repairing store items
+@cindex réparer les éléments du dépôt
 @cindex corruption, récupérer de
-Attempt to repair the specified store items, if they are corrupt, by
-re-downloading or rebuilding them.
+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.
 
-This operation is not atomic and thus restricted to @code{root}.
+Cette opération n'est pas atomique et donc restreinte à l'utilisateur
+@code{root}
 
 @item --derivations
 @itemx -d
-Return the derivation paths, not the output paths, of the given packages.
+Renvoie les chemins de dérivation, et non les chemins de sortie, des paquets
+donnés.
 
-@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.
+@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.
 
-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{Invoquer guix gc}, for more on GC roots.
+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 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.
+@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.
 
-This works regardless of how packages or derivations are specified.  For
-instance, the following invocations are equivalent:
+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`
@@ -6202,40 +6376,44 @@ 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}.)
+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}.)
 
-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:
+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://hydra.gnu.org/log/@dots{}-gdb-7.10
 @end example
 
-You can freely access a huge library of build logs!
+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 build failures, debugging
-When defining a new package (@pxref{Définition des paquets}), 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.
+@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.
 
-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{Invoquer guix build, @code{--keep-failed}}).
+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}}).
 
-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:
+À 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
@@ -6245,17 +6423,17 @@ $ 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.
+Maintenant, vous pouvez invoquer les commandes comme si vous étiez le démon
+(presque) et corriger le processus de construction.
 
-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{Réglages de l'environnement 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}).
 
-In such cases, you may need to run inspect the build process from within a
-container similar to the one the build daemon creates:
+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
@@ -6266,162 +6444,168 @@ $ guix environment --no-grafts -C foo --ad-hoc strace gdb
 [env]# cd foo-1.2
 @end example
 
-Here, @command{guix environment -C} creates a container and spawns a new
-shell in it (@pxref{Invoquer 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{Mises à jour de sécurité}, for more info on grafts).
+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).
 
-To get closer to a container like that used by the build daemon, we can
-remove @file{/bin/sh}:
+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
 
-(Don't worry, this is harmless: this is all happening in the throw-away
-container created by @command{guix environment}.)
+Ne vous inquiétez pas, c'est sans danger : tout cela se passe dans un
+conteneur jetable créé par @command{guix environment}.
 
-The @command{strace} command is probably not in the search path, but we can
-run:
+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
 
-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.
+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 Invoking @command{guix edit}
+@section Invoquer @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:
+@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 packagers 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
-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.
+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 cele de Vim.
 
-If you are using a Guix Git checkout (@pxref{Construire depuis Git}), or have
-created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Définition des paquets}), you will be able to edit the package recipes. Otherwise, you
-will be able to examine the read-only recipes for packages currently in the
-store.
+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{Définition des 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 Invoking @command{guix download}
+@section Invoquer @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{Définition des paquets}).  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{Invoquer 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{Certificats X.509}),
-unless @option{--no-check-certificate} is used.
-
-The following options are available:
+@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 : losque 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}
-Write the hash in the format specified by @var{fmt}.  For more information
-on the valid values for @var{fmt}, @pxref{Invoquer guix hash}.
+É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
-Do not validate the X.509 certificates of HTTPS servers.
+Ne pas valider les certificats HTTPS des serveurs.
 
-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.
+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{file}
-@itemx -o @var{file}
-Save the downloaded file to @var{file} instead of adding it to the store.
+@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 Invoking @command{guix hash}
+@section Invoquer @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{Définition des paquets}).
+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{file}
+guix hash @var{option} @var{fichier}
 @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:
+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}
-Write the hash in the format specified by @var{fmt}.
+Écrit le hash dans le format spécifié par @var{fmt}.
 
-Supported formats: @code{nix-base32}, @code{base32}, @code{base16}
-(@code{hex} and @code{hexadecimal} can be used as well).
+Les formats supportés sont : @code{nix-base32}, @code{base32}, @code{base16}
+(@code{hex} et @code{hexadecimal} peuvent aussi être utilisés).
 
-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.
+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
-Compute the hash on @var{file} recursively.
+Calcule le hash sur @var{fichier} récursivement.
 
 @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{Invoquer guix archive}).
+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
-When combined with @option{--recursive}, exclude version control system
-directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)
+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
-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{Référence d'origine}):
+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
@@ -6431,17 +6615,18 @@ $ guix hash -rx .
 @end table
 
 @node Invoquer 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{Définition des paquets}).
+@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 :
 
@@ -6449,47 +6634,49 @@ La syntaxe générale est :
 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:
+@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
-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.
+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.
 
-Additional information such as the package dependencies and its license
-needs to be figured out manually.
+Les informations supplémentaires comme les dépendances du paquet et sa
+licence doivent être renseignées manuellement.
 
-For example, the following command returns a package definition for
-GNU@tie{}Hello:
+Par exemple, la commande suivante renvoie une définition de paquets pour
+GNU@tie{}Hello :
 
 @example
 guix import gnu hello
 @end example
 
-Specific command-line options are:
+Les options spécifiques sont :
 
 @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{Invoquer guix refresh,
-@code{--key-download}}.
+@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}@footnote{This functionality requires Guile-JSON to be installed.
-@xref{Prérequis}.}.  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.
+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{Prérequis}.}.  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.
 
-The command below imports metadata for the @code{itsdangerous} Python
-package:
+La commande ci-dessous importe les métadonnées du paquet Python
+@code{itsdangerous} :
 
 @example
 guix import pypi itsdangerous
@@ -6497,35 +6684,44 @@ guix import pypi itsdangerous
 
 @item gem
 @cindex gem
-Import metadata from @uref{https://rubygems.org/, RubyGems}@footnote{This
-functionality requires Guile-JSON to be installed.  @xref{Prérequis}.}.
-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.
+Importe des métadonnées de @uref{https://rubygems.org/,
+RubyGems}@footnote{Cette fonctionnalité requiert l'installation de
+Guile-JSON.  @xref{Prérequis}.}.  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 au packager.
 
-The command below imports metadata for the @code{rails} Ruby package:
+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}@footnote{This functionality requires Guile-JSON to be installed.
-@xref{Prérequis}.}.  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.
+Importe des métadonnées de @uref{https://www.metacpan.org/,
+MetaCPAN}@footnote{Cette fonctionnalité requiert l'installation de
+Guile-JSON.  @xref{Prérequis}.}.  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.
 
-The command command below imports metadata for the @code{Acme::Boolean} Perl
-module:
+La commande ci-dessous importe les métadonnées du module Perl
+@code{Acme::Boolean} :
 
 @example
 guix import cpan Acme::Boolean
@@ -6534,31 +6730,32 @@ guix import cpan Acme::Boolean
 @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}.
+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}.
 
-Information is extracted from the @code{DESCRIPTION} file of the package.
+Les informations sont extraites du fichier @file{DESCRIPTION} du paquet.
 
-The command command below imports metadata for the @code{Cairo} R package:
+La commande ci-dessous importe les métadonnées du paquet R @code{Cairo} :
 
 @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.
+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.
 
-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.
+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.
 
-Information is extracted from the @code{DESCRIPTION} file of a package
-published on the web interface of the Bioconductor SVN repository.
+Les informations sont extraites du fichier @file{DESCRIPTION} d'un paquet
+publié sur l'interface web du dépôt SVN de Bioconductor.
 
-The command below imports metadata for the @code{GenomicRanges} R package:
+La commande ci-dessous importe les métadonnées du paquet R
+@code{GenomicRanges} :
 
 @example
 guix import cran --archive=bioconductor GenomicRanges
@@ -6567,29 +6764,30 @@ guix import cran --archive=bioconductor GenomicRanges
 @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}.
+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}.
 
-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.
+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.
 
-The command command below imports metadata for the @code{fontspec} TeX
-package:
+La commande ci-dessous importe les métadonnées du paquet TeX @code{fontspec}
+:
 
 @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.
+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.
 
-The command below imports metadata for the @code{ifxetex} package from CTAN
-while fetching the sources from the directory @file{texmf/source/generic}:
+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
@@ -6597,9 +6795,10 @@ guix import texlive --archive=generic ifxetex
 
 @item json
 @cindex JSON, import
-Import package metadata from a local JSON file@footnote{This functionality
-requires Guile-JSON to be installed.  @xref{Prérequis}.}.  Consider the
-following example package definition in JSON format:
+Importe des métadonnées d'un fichier JSON local@footnote{Cette
+fonctionnalité requiert l'installation de Guile-JSON.
+@xref{Prérequis}.}.  Considérez l'exemple suivant d'une définition de
+paquet au format JSON :
 
 @example
 @{
@@ -6615,13 +6814,13 @@ following example package definition in JSON format:
 @}
 @end example
 
-The field names are the same as for the @code{<package>} record
-(@xref{Définition des paquets}).  References to other packages are provided as
-JSON lists of quoted package specification strings such as @code{guile} or
-@code{guile@@2.0}.
+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}.
 
-The importer also supports a more explicit source definition using the
-common fields for @code{<origin>} records:
+L'importateur supporte aussi une définition plus explicite des sources avec
+les champs habituels pour les enregistrements @code{<origin>} :
 
 @example
 @{
@@ -6637,37 +6836,39 @@ common fields for @code{<origin>} records:
 @}
 @end example
 
-The command below reads metadata from the JSON file @code{hello.json} and
-outputs a package expression:
+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
-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.
+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.
 
-When importing a GNU package, the synopsis and descriptions are replaced by
-their canonical upstream variant.
+Lorsque vous importez un paquet GNU, le synopsis et la description sont
+replacés par la version canonique en amont.
 
-Usually, you will first need to do:
+Normalement, vous devrez d'abord faire :
 
 @example
 export NIX_REMOTE=daemon
 @end example
 
 @noindent
-so that @command{nix-instantiate} does not try to open the Nix database.
+pour que @command{nix-instantiate} n'essaye pas d'ouvrir la base de données
+de Nix.
 
-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):
+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
@@ -6675,42 +6876,48 @@ guix import nix ~/path/to/nixpkgs libreoffice
 
 @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.
+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.
 
-Specific command-line options are:
+Les options spécifiques sont :
 
 @table @code
 @item --stdin
 @itemx -s
-Read a Cabal file from standard input.
+Lit un fichier Cabal depuis l'entrée standard.
 @item --no-test-dependencies
 @itemx -t
-Do not include dependencies required only by the test suites.
+N'inclut pas les dépendances requises uniquement par les suites de tests.
 @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.
+@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
 
-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}:
+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
 
-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:
+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
@@ -6718,26 +6925,27 @@ guix import hackage mtl@@2.1.3.1
 
 @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.
+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.
 
-Specific command-line options are:
+Les options spécifiques sont :
 
 @table @code
 @item --no-test-dependencies
 @itemx -t
-Do not include dependencies required only by the test suites.
+N'inclut pas les dépendances requises uniquement par les suites de tests.
 @item --lts-version=@var{version}
 @itemx -r @var{version}
-@var{version} is the desired LTS release version.  If omitted the latest
-release is used.
+@var{version} est la version LTS désirée.  Si elle est omise, la dernière
+version est utilisée.
 @end table
 
-The command below imports metadata for the @code{HTTP} Haskell package
-included in the LTS Stackage release version 7.18:
+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
@@ -6745,89 +6953,96 @@ guix import stackage --lts-version=7.18 HTTP
 
 @item elpa
 @cindex elpa
-Import metadata from an Emacs Lisp Package Archive (ELPA) package repository
-(@pxref{Packages,,, emacs, The GNU Emacs Manual}).
+Importe les métadonnées du dépôt de paquets ELPA (Emacs Lisp Package
+Archive) (@pxref{Packages,,, emacs, The GNU Emacs Manual}).
 
-Specific command-line options are:
+Les options spécifiques sont :
 
 @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:
+@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}, selected by the @code{gnu}
-identifier.  This is the default.
+@uref{http://elpa.gnu.org/packages, GNU}, qu'on peut choisir avec
+l'identifiant @code{gnu}.  C'est la valeur par défaut.
 
-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
+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}, selected by the
-@code{melpa-stable} identifier.
+@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}, selected by the @code{melpa}
-identifier.
+@uref{http://melpa.org/packages, MELPA}, qu'on peut sélectionner avec
+l'identifiant @code{melpa}.
 @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.
+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
-Import metadata from the crates.io Rust package repository
+Importe les métadonnées du répertoire des paquets Rust
 @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{Contribuer}).
+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 Invoking @command{guix refresh}
+@section Invoquer @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:
+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 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
+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
 
-Alternately, one can specify packages to consider, in which case a warning
-is emitted for packages that lack an updater:
+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: warning: no updater for guile-ssh
-gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13
+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} 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!
+@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 !
 
-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:
+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
@@ -6837,18 +7052,19 @@ that effect:
     (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{Définition des paquets}).  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.
+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.
 
-The following options are supported:
+Les options suivantes sont supportées :
 
 @table @code
 
@@ -6856,136 +7072,155 @@ The following options are supported:
 @itemx -e @var{expr}
 Considérer le paquet évalué par @var{expr}.
 
-This is useful to precisely refer to a package, as in this example:
+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
 
-This command lists the dependents of the ``final'' libc (essentially all the
-packages.)
+Cette commande liste les paquets qui dépendent de la libc « finale » (en
+gros tous les paquets).
 
 @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{Lancer Guix avant qu'il ne soit installé}):
+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}, for more information on package definitions.
+@xref{Définition des paquets}, pour plus d'information sur les définitions des
+paquets.
 
 @item --select=[@var{subset}]
 @itemx -s @var{subset}
-Select all the packages in @var{subset}, one of @code{core} or
+Choisi tous les paquets dans @var{subset}, entre @code{core} et
 @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.
+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 rest ».  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.
 
-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.
+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}
-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.
+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}
-Select only packages handled by @var{updater} (may be a comma-separated list
-of updaters).  Currently, @var{updater} may be one of:
+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
-the updater for GNU packages;
+le gestionnaire de mise à jour pour les paquets GNU ;
 @item gnome
-the updater for GNOME packages;
+le gestionnaire de mise à jour pour les paquets GNOME ;
 @item kde
-the updater for KDE packages;
+le gestionnaire de mise à jour pour les paquets KDE ;
 @item xorg
-the updater for X.org packages;
+le gestionnaire de mise à jour pour les paquets X.org ;
 @item kernel.org
-the updater for packages hosted on kernel.org;
+le gestionnaire de mise à jour pour les paquets hébergés sur kernel.org ;
 @item elpa
-the updater for @uref{http://elpa.gnu.org/, ELPA} packages;
+le gestionnaire de mise à jour pour les paquets @uref{http://elpa.gnu.org/,
+ELPA} ;
 @item cran
-the updater for @uref{https://cran.r-project.org/, CRAN} packages;
+le gestionnaire de mise à jour pour les paquets
+@uref{https://cran.r-project.org/, CRAN} ;
 @item bioconductor
-the updater for @uref{https://www.bioconductor.org/, Bioconductor} R
-packages;
+le gestionnaire de mise à jour pour les paquets
+@uref{https://www.bioconductor.org/, Bioconductor} ;
 @item cpan
-the updater for @uref{http://www.cpan.org/, CPAN} packages;
+le gestionnaire de mise à jour pour les paquets @uref{http://www.cpan.org/,
+CPAN} ;
 @item pypi
-the updater for @uref{https://pypi.python.org, PyPI} packages.
+le gestionnaire de mise à jour pour les paquets
+@uref{https://pypi.python.org, PyPI} ;
 @item gem
-the updater for @uref{https://rubygems.org, RubyGems} packages.
+le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org,
+RubyGems} ;
 @item github
-the updater for @uref{https://github.com, GitHub} packages.
+le gestionnaire de mise à jour pour les paquets @uref{https://github.com,
+GitHub} ;
 @item hackage
-the updater for @uref{https://hackage.haskell.org, Hackage} packages.
+le gestionnaire de mise à jour pour les paquets
+@uref{https://hackage.haskell.org, Hackage} ;
 @item stackage
-the updater for @uref{https://www.stackage.org, Stackage} packages.
+le gestionnaire de mise à jour pour les paquets
+@uref{https://www.stackage.org, Stackage} ;
 @item crate
-the updater for @uref{https://crates.io, Crates} packages.
+le gestionnaire de mise à jour pour les paquets @uref{https://crates.io,
+Crates} ;
 @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:
+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 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
+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
 
-In addition, @command{guix refresh} can be passed one or more package names,
-as in this example:
+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
-The command above specifically updates the @code{emacs} and @code{idutils}
-packages.  The @code{--select} option would have no effect in this case.
+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.
 
-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:
+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
-List available updaters and exit (see @option{--type} above.)
+Liste les gestionnaires de mise à jour et quitte (voir l'option
+@option{--type} plus haut).
 
-For each updater, display the fraction of packages it covers; at the end,
-display the fraction of packages covered by all these updaters.
+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
-List top-level dependent packages that would need to be rebuilt as a result
-of upgrading one or more packages.
+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, the @code{reverse-package} type of @command{guix
-graph}}, for information on how to visualize the list of dependents of a
-package.
+@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
 
-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.
+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
@@ -6993,102 +7228,114 @@ Building the following 120 packages would ensure 213 dependent packages are rebu
 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.
+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}.
 
-The following options can be used to customize GnuPG operation:
+Les options suivante peuvent être utilisées pour personnaliser les
+opérations avec GnuPG :
 
 @table @code
 
-@item --gpg=@var{command}
-Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for
-in @code{$PATH}.
+@item --gpg=@var{commande}
+Utilise @var{commande} comme la commande de GnuPG 2.x.  @var{commande} est
+recherchée dans @code{PATH}.
 
-@item --key-download=@var{policy}
-Handle missing OpenPGP keys according to @var{policy}, which may be one of:
+@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
-Always download missing OpenPGP keys from the key server, and add them to
-the user's GnuPG keyring.
+Toujours télécharger les clefs manquantes depuis un serveur de clefs et les
+ajouter au porte-clefs de l'utilisateur.
 
 @item never
-Never try to download missing OpenPGP keys.  Instead just bail out.
+Ne jamais essayer de télécharger les clefs OpenPGP manquante.  Quitter à la
+place.
 
 @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.
+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}
-Use @var{host} as the OpenPGP key server when importing a public key.
+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.
+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.
 
 
 @node Invoquer guix lint
-@section Invoking @command{guix lint}
+@section Invoquer @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):
+@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
-Validate certain typographical and stylistic rules about package
-descriptions and synopses.
+Vérifie certaines règles typographiques et stylistiques dans les
+descriptions et les synopsis.
 
 @item inputs-should-be-native
-Identify inputs that should most likely be native inputs.
+Identifie les entrées qui devraient sans doute plutôt être des entrées
+natives.
 
 @item source
 @itemx home-page
 @itemx mirror-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.  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}).
+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-checkou », sans avoir déclaré un
+@code{file-name} (@pxref{Référence d'origine}).
 
 @item cve
-@cindex security vulnerabilities
+@cindex vulnérabilités
 @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}.
+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}.
 
-To view information about a particular vulnerability, visit pages such as:
+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-YYYY-ABCD}
+@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-YYYY-ABCD}
+@indicateurl{https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-ANNÉE-ABCD}
 @end itemize
 
 @noindent
-where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
+où @code{CVE-ANNÉE-ABCD} est l'identifiant CVE — p.@: ex.@:
 @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:
+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
@@ -7100,16 +7347,16 @@ Guix uses, as in this example:
 @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:
+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{}
-  ;; These CVEs no longer apply and can be safely ignored.
+  ;; 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"
@@ -7117,8 +7364,8 @@ this example:
 @end example
 
 @item formatting
-Warn about obvious source code formatting issues: trailing white space, use
-of tabulations, etc.
+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 :
@@ -7127,38 +7374,40 @@ La syntaxe générale est :
 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:
+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
-List and describe all the available checkers that will be run on packages
-and exit.
+Liste et décrit tous les vérificateurs disponibles qui seront lancés sur les
+paquets puis quitte.
 
 @item --checkers
 @itemx -c
-Only enable the checkers specified in a comma-separated list using the names
-returned by @code{--list-checkers}.
+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 Invoking @command{guix size}
+@section Invoquer @command{guix size}
 
-@cindex size
-@cindex package size
+@cindex taille
+@cindex paquet, taille
 @cindex closure
 @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{Des paquets avec plusieurs résultats}).  Such are the typical issues that @command{guix size} can
-highlight.
+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.
 
-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:
+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
@@ -7175,34 +7424,36 @@ total: 78.9 MiB
 @end example
 
 @cindex closure
-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:
+Les éléments du dépôt listés ici constituent la @dfn{cloture 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
 
-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{Mises à jour de sécurité}, 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}).
+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 cloture 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 cloture 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 cloture 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
@@ -7210,7 +7461,7 @@ size} rapporte les informations en se basant sur les substituts disponibles
 éléments du dépôt même s'ils ne sont pas sur le disque, mais disponibles à
 distance.
 
-You can also specify several package names:
+Vous pouvez aussi spécifier plusieurs noms de paquets :
 
 @example
 $ guix size coreutils grep sed bash
@@ -7224,218 +7475,225 @@ 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.
+Dans cet exemple on voit que la combinaison des quatre paquets prent
+102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clotures
+puisqu'ils ont beaucoup de dépendances en commun.
 
-The available options are:
+Les options disponibles sont :
 
 @table @option
 
 @item --substitute-urls=@var{urls}
-Use substitute information from @var{urls}.  @xref{client-substitute-urls,
-the same option for @code{guix build}}.
+Utilise les informations de substituts de @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:
+@item --sort=@var{clef}
+Trie les lignes en fonction de la @var{clef}, l'une des optinos suivantes :
 
 @table @code
 @item self
-the size of each item (the default);
+la taille de chaque élément (par défaut) ;
 @item closure
-the total size of the item's closure.
+la taille totale de la cloture de l'élémente.
 @end table
 
-@item --map-file=@var{file}
-Write a graphical map of disk usage in PNG format to @var{file}.
+@item --map-file=@var{fichier} 
+Écrit un schéma de l'utilisation du disque au format PNG dans @var{fichier}.
 
-For the example above, the map looks like this:
+Pour l'exemple au-dessus, le schéma ressemble à ceci :
 
-@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced
-by @command{guix size}}
+@image{images/coreutils-size-map,5in,, schéma de l'utilisation du disque de
+Coreutils produit par @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.
+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}
-Consider packages for @var{system}---e.g., @code{x86_64-linux}.
+Considère les paquets pour @var{système} — p.@: ex.@: @code{x86_64-linux}.
 
 @end table
 
 @node Invoquer guix graph
-@section Invoking @command{guix graph}
+@section Invoque @command{guix graph}
 
 @cindex DAG
 @cindex @command{guix graph}
 @cindex dépendances des paquets
-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:
+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{package}@dots{}
+guix graph @var{options} @var{paquet}@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:
+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
 
-The output looks like this:
+La sortie ressemble à ceci :
 
-@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}
+@image{images/coreutils-graph,2in,,Graphe de dépendance de GNU Coreutils}
 
-Nice little graph, no?
+Joli petit graphe, non ?
 
-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:
+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
-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.
+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
-This shows the @emph{reverse} DAG of packages.  For example:
+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.
+… montre le graphe des paquets qui dépendent de 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{Invoquer guix refresh,
+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
-This is the package DAG, @emph{including} implicit inputs.
+C'est le DAG du paquet, @emph{avec} les entrées implicites.
 
-For instance, the following command:
+Par exemple, la commande suivante :
 
 @example
 guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf
 @end example
 
-... yields this bigger graph:
+… montre ce graphe plus gros :
 
-@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU
-Coreutils}
+@image{images/coreutils-bag-graph,,5in,Graphe des dépendances détaillé de
+GNU Coreutils}
 
-At the bottom of the graph, we see all the implicit inputs of
+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}}).
 
-Now, note that the dependencies of these implicit inputs---that is, the
-@dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here,
-for conciseness.
+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
-Similar to @code{bag-emerged}, but this time including all the bootstrap
-dependencies.
+Comme @code{bag-emerged} mais cette fois inclus toutes les dépendances de
+bootstrap.
 
 @item bag-with-origins
-Similar to @code{bag}, but also showing origins and their dependencies.
+Comme @code{bag}, mais montre aussi les origines et leurs dépendances.
 
 @item dérivation
-This is the most detailed representation: It shows the DAG of derivations
-(@pxref{Dérivations}) and plain store items.  Compared to the above
-representation, many additional nodes are visible, including build scripts,
-patches, Guile modules, etc.
+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.
 
-For this type of graph, it is also possible to pass a @file{.drv} file name
-instead of a package name, as in:
+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
-This is the graph of @dfn{package modules} (@pxref{Modules de paquets}).  For
-example, the following command shows the graph for the package module that
-defines the @code{guile} package:
+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
 
-All the types above correspond to @emph{build-time dependencies}.  The
-following graph type represents the @emph{run-time dependencies}:
+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
-This is the graph of @dfn{references} of a package output, as returned by
-@command{guix gc --references} (@pxref{Invoquer guix gc}).
+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}).
 
-If the given package output is not available in the store, @command{guix
-graph} attempts to obtain dependency information from substitutes.
+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.
 
-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!):
+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
-This is the graph of the @dfn{referrers} of a store item, as returned by
-@command{guix gc --referrers} (@pxref{Invoquer guix gc}).
+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}).
 
-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.
+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.
 
-It can help determine what is preventing a store item from being garbage
-collected.
+Cela peut aider à déterminer ce qui empêche un élément du dépôt d'être
+glané.
 
 @end table
 
-The available options are the following:
+Les options disponibles sont les suivante :
 
 @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.
+Produit un graphe en sortie de type @var{type} où @var{type} doit être l'un
+des types au-dessus.
 
 @item --list-types
-List the supported graph types.
+Liste les types de graphes supportés.
 
-@item --backend=@var{backend}
-@itemx -b @var{backend}
-Produce a graph using the selected @var{backend}.
+@item --backend=@var{moteur}
+@itemx -b @var{moteur}
+Produit un graphe avec le @var{moteur} choisi.
 
 @item --list-backends
-List the supported graph backends.
+Liste les moteurs de graphes supportés.
 
-Currently, the available backends are Graphviz and d3.js.
+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}.
 
-This is useful to precisely refer to a package, as in this example:
+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)'
@@ -7444,51 +7702,54 @@ guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
 
 
 @node Invoquer guix environment
-@section Invoking @command{guix environment}
+@section Invoquer @command{guix environment}
 
-@cindex reproducible build environments
-@cindex development environments
+@cindex environnements de construction reproductibles
+@cindex environnement de développement
 @cindex @command{guix environment}
-@cindex environment, package build environment
-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.
+@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{package}@dots{}
+guix environment @var{options} @var{paquet}@dots{}
 @end example
 
-The following example spawns a new shell set up for the development of
-GNU@tie{}Guile:
+L'exemple suivant crée un nouveau shell préparé pour le développement de
+GNU@tie{}Guile :
 
 @example
 guix environment guile
 @end example
 
-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.}.
+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} 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}):
+@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" ]
@@ -7498,119 +7759,119 @@ fi
 @end example
 
 @noindent
-... or to browse the profile:
+… ou de naviguer dans le profil :
 
 @example
 $ ls "$GUIX_ENVIRONMENT/bin"
 @end example
 
-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:
+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
 
-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:
+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
 
-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:
+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
 
-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:
+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 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:
+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 :
 
 @example
 guix environment --ad-hoc --container guile -- guile
 @end example
 
 @quotation Remarque
-The @code{--container} option requires Linux-libre 3.19 or newer.
+L'option @code{--container} requiert Linux-libre 3.19 ou supérieur.
 @end quotation
 
-The available options are summarized below.
+Les options disponibles sont résumées ci-dessous.
 
 @table @code
-@item --root=@var{file}
-@itemx -r @var{file}
-@cindex persistent environment
-@cindex garbage collector root, for environments
-Make @var{file} a symlink to the profile for this environment, and register
-it as a garbage collector root.
-
-This is useful if you want to protect your environment from garbage
-collection, to make it ``persistent''.
-
-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{Invoquer guix gc}, for more on GC
-roots.
+@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}
-Create an environment for the package or list of packages that @var{expr}
-evaluates to.
+Crée un environnement pour le paquet ou la liste de paquets en lesquels
+s'évalue @var{expr}.
 
-For example, running:
+Par exemple, lancer :
 
 @example
 guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'
 @end example
 
-starts a shell with the environment for this specific variant of the PETSc
-package.
+démarre un shell avec l'environnement pour cette variante spécifique du
+paquet PETSc.
 
-Running:
+Lancer :
 
 @example
 guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'
 @end example
 
-starts a shell with all the GuixSD base packages available.
+démarre un shell où tous les paquets de base de GuixSD sont disponibles.
 
-The above commands only use the default output of the given packages.  To
-select other outputs, two element tuples can be specified:
+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{file}
-@itemx -l @var{file}
-Create an environment for the package or list of packages that the code
-within @var{file} evaluates to.
+@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}) :
@@ -7621,152 +7882,159 @@ Par exemple, @var{fichier} peut contenir une définition comme celle-ci
 
 @item --manifest=@var{fichier}
 @itemx -m @var{fichier}
-Create an environment for the packages contained in the manifest object
-returned by the Scheme code in @var{file}.
+Crée un environnement pour les paquets contenus dans l'objet manifeste
+renvoyé par le code Scheme dans @var{fichier}.
 
-This is similar to the same-named option in @command{guix package}
-(@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest
-files.
+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
-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.
+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.
 
-For instance, the command:
+Par exemple la commande :
 
 @example
 guix environment --ad-hoc guile guile-sdl -- guile
 @end example
 
-runs @command{guile} in an environment where Guile and Guile-SDL are
-available.
+lance @command{guile} dans un environnement où Guile et Guile-SDDL sont
+disponibles.
 
-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{Des paquets avec plusieurs résultats}).
+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}).
 
-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.
+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.
-This has the effect of creating an environment in which search paths only
-contain package inputs.
+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.
 
 @item --search-paths
-Display the environment variable definitions that make up the environment.
+Affiche les définitions des variables d'environnement qui composent
+l'environnement.
 
 @item --system=@var{système}
 @itemx -s @var{système}
-Attempt to build for @var{system}---e.g., @code{i686-linux}.
+Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}.
 
 @item --container
 @itemx -C
-@cindex container
-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.
+@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/passwod} 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
-For containers, share the network namespace with the host system.
-Containers created without this flag only have access to the loopback
-device.
+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
-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.
-
-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.
-
-@item --user=@var{user}
-@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} need not exist on the system.
-
-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.
-
-@example
-# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target
+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/passwod}
+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
 
-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.
+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{target}]
-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.
+@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.
 
-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:
+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{target}]
-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.
+@item --share=@var{source}[=@var{cible}]
+Pour les conteneurs, partage le système de fichiers @var{soruce} 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.
 
-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:
+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}).
+@command{guix environment} supporte aussi toutes les options de construction
+que @command{guix build} supporte (@pxref{Options de construction communes}).
 
 
 @node Invoquer guix publish
-@section Invoking @command{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{hydra.gnu.org} build farm.
+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}.
 
 Pour des raisons de sécurité, chaque substitut est signé, ce qui permet aux
 destinataires de vérifier leur authenticité et leur intégrité
@@ -7775,8 +8043,9 @@ 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.
 
-The signing key pair must be generated before @command{guix publish} is
-launched, using @command{guix archive --generate-key} (@pxref{Invoquer guix archive}).
+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 :
 
@@ -7784,169 +8053,176 @@ La syntaxe générale est :
 guix publish @var{options}@dots{}
 @end example
 
-Running @command{guix publish} without any additional arguments will spawn
-an HTTP server on port 8080:
+Lancer @command{guix publish} sans arguments supplémentaires lancera un
+serveur HTTP sur le port 8080 :
 
 @example
 guix publish
 @end example
 
-Once a publishing server has been authorized (@pxref{Invoquer guix archive}), the daemon may download substitutes from it:
+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
 
-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{Invoquer guix weather}).
+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}).
 
-As a bonus, @command{guix publish} also serves as a content-addressed mirror
-for source files referenced in @code{origin} records (@pxref{Référence d'origine}).  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{Invoquer guix hash}):
+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 fichie
+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
 
-Obviously, these URLs only work for files that are in the store; in other
-cases, they return 404 (``Not Found'').
+É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 build logs, publication
-Build logs are available from @code{/log} URLs like:
+@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
-When @command{guix-daemon} is configured to save compressed build logs, as
-is the case by default (@pxref{Invoquer 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.
+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} pace que les navigateurs web les décompressent
+automatiquement, ce qui n'est pas le cas avec la compression bzip2.
 
-The following options are available:
+Les options suivantes sont disponibles :
 
 @table @code
 @item --port=@var{port}
 @itemx -p @var{port}
-Listen for HTTP requests on @var{port}.
-
-@item --listen=@var{host}
-Listen on the network interface for @var{host}.  The default is to accept
-connections from any interface.
-
-@item --user=@var{user}
-@itemx -u @var{user}
-Change privileges to @var{user} as soon as possible---i.e., once the server
-socket is open and the signing key has been read.
-
-@item --compression[=@var{level}]
-@itemx -C [@var{level}]
-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.
-
-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.
-
-@item --cache=@var{directory}
-@itemx -c @var{directory}
-Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and
-only serve archives that are in cache.
-
-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.
-
-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.
-
-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.
-
-When @option{--ttl} is used, cached entries are automatically deleted when
-they have expired.
+É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ésponses, 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}
-When @option{--cache} is used, request the allocation of @var{N} worker
-threads to ``bake'' archives.
+Lorsque @option{--cache} est utilisée, demande l'allocation de @var{N}
+thread de travail pour créer les archives.
 
 @item --ttl=@var{ttl}
-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.
-
-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}.
-
-Additionally, when @option{--cache} is used, cached entries that have not
-been accessed for @var{ttl} and that no longer have a corresponding item in
-the store, may be deleted.
-
-@item --nar-path=@var{path}
-Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoquer guix archive, normalized archives}).
-
-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}.
-
-@item --public-key=@var{file}
-@itemx --private-key=@var{file}
-Use the specific @var{file}s as the public/private key pair used to sign the
-store items being published.
-
-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{Invoquer guix archive}).  By
-default, @file{/etc/guix/signing-key.pub} and
-@file{/etc/guix/signing-key.sec} are used.
+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}]
-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.
+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 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
+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}}).
 
-If you are instead running Guix on a ``foreign distro'', follow these
-instructions:”
+Si vous avez installé Guix sur une « distro extérieure », suivez ces
+instructions :
 
 @itemize
 @item
-If your host distro uses the systemd init system:
+Si votre distro hôte utilise le système d'init systemd :
 
 @example
 # ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \
@@ -7963,19 +8239,21 @@ Si votre distribution hôte utilise le système d'initialisation Upstart :
 @end example
 
 @item
-Otherwise, proceed similarly with your distro's init system.
+Sinon, procédez de manière similaire avec votre système d'init de votre
+distro.
 @end itemize
 
 @node Invoquer guix challenge
-@section Invoking @command{guix challenge}
+@section Invoquer @command{guix challenge}
 
 @cindex constructions reproductibles
-@cindex verifiable builds
+@cindex constructions vérifiables
 @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.
+@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
@@ -7985,61 +8263,65 @@ 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.
 
-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.
+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é.
 
-The command output looks like this:
+La sortie de la commande ressemble à :
 
 @smallexample
 $ guix challenge --substitute-urls="https://hydra.gnu.org https://guix.example.org"
-updating list of substitutes from 'https://hydra.gnu.org'... 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://hydra.gnu.org/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://hydra.gnu.org/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://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
-  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs
+mise à jour de la liste des substituts depuis 'https://hydra.gnu.org'... 100.0%
+mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0%
+le contenu de /gnu/store/@dots{}-openssl-1.0.2d diffère :
+  empreinte locale : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
+  https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d : 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q
+  https://guix.example.org/nar/@dots{}-openssl-1.0.2d : 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim
+le contenu de /gnu/store/@dots{}-git-2.5.0 diffère :
+  empreinte locale : 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha
+  https://hydra.gnu.org/nar/@dots{}-git-2.5.0 : 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f
+  https://guix.example.org/nar/@dots{}-git-2.5.0 : 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
+le contenu de /gnu/store/@dots{}-pius-2.1.1 diffère :
+  empreinte locale : 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax
+  https://hydra.gnu.org/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
+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
-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{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{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.
-
-To find out what is wrong with this Git binary, we can do something along
-these lines (@pxref{Invoquer guix archive}):
+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
+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{Fonctionnalités}).  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.
+
+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://hydra.gnu.org/nar/@dots{}-git-2.5.0 \
@@ -8047,96 +8329,102 @@ $ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \
 $ 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{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.
+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.
 
-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.
+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{hydra.gnu.org} and other substitute servers obtain the same build
-result as you did with:
+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 :
 
 @example
-$ guix challenge @var{package}
+$ guix challenge @var{paquet}
 @end example
 
 @noindent
-where @var{package} is a package specification such as @code{guile@@2.0} or
+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{packages}@dots{}]
+guix challenge @var{options} [@var{paquets}@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.)
+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).
 
-The one option that matters is:
+L'option qui compte est :
 
 @table @code
 
 @item --substitute-urls=@var{urls}
-Consider @var{urls} the whitespace-separated list of substitute source URLs
-to compare to.
+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
-Show details about matches (identical contents) in addition to information
-about mismatches.
+Montre des détails sur les correspondances (contenu identique) en plus des
+informations sur différences.
 
 @end table
 
 @node Invoquer guix copy
-@section Invoking @command{guix copy}
+@section Invoquer @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{Prérequis}, 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}:
+@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{user}@@@var{host} \
+guix copy --to=@var{utilisateur}@@@var{hôte} \
           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.
+Si certains éléments à copier sont déjà présents sur @var{hôte}, ils ne sont
+pas envoyés.
 
-The command below retrieves @code{libreoffice} and @code{gimp} from
-@var{host}, assuming they are available there:
+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{host} libreoffice gimp
+guix copy --from=@var{hôte} 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.
+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.
 
-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{Invoquer guix archive}, for more information about store item
-authentication.
+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 :
 
@@ -8144,36 +8432,38 @@ La syntaxe générale est :
 guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}
 @end example
 
-You must always specify one of the following options:
+Vous devez toujours spécifier l'une des options suivantes :
 
 @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}.
+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
 
-The @var{items} can be either package names, such as @code{gimp}, or store
-items, such as @file{/gnu/store/@dots{}-idutils-4.6}.
+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}.
 
-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{Options de construction communes}).
+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 Invoking @command{guix container}
-@cindex container
+@section Invoquer @command{guix container}
+@cindex conteneur
 @cindex @command{guix container}
 @quotation Remarque
-As of version @value{VERSION}, this tool is experimental.  The interface is
-subject to radical change in the future.
+À la version @value{VERSION}, cet outil est toujours expérimental.
+L'interface est sujette à changement radicaux dans le futur.
 @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{Invoquer guix environment}) and @command{guix system container} (@pxref{Invoquer guix system}) commands.
+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 :
 
@@ -8181,41 +8471,41 @@ La syntaxe générale est :
 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.
+@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.
 
-The following actions are available:
+Les actions suivantes sont disponibles :
 
 @table @code
 @item exec
-Execute a command within the context of a running container.
+Exécute une commande dans le contexte d'un conteneur lancé.
 
-The syntax is:
+La syntaxe est :
 
 @example
-guix container exec @var{pid} @var{program} @var{arguments}@dots{}
+guix container exec @var{pid} @var{programme} @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}.
+@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 GuixSD
-container, started by @command{guix system container}, and whose process ID
-is 9001:
+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 :
 
 @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.
+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 Invoking @command{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
@@ -8225,70 +8515,73 @@ 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 statistics, for substitutes
-@cindex availability of substitutes
-@cindex substitute availability
-@cindex weather, substitute availability
-Here's a sample run:
+@cindex statistiques sur les substituts
+@cindex disponibilité des substituts
+@cindex substuts, disponibilité
+@cindex weather, disponibilité des substituts
+Voici un exemple :
 
 @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%
+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% 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.
-
-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.
+  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
+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.
+
+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} is the space-separated list of substitute server URLs to query.
-When this option is omitted, the default set of substitute servers is
-queried.
+@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}
-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.
+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}
-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{Invoquer guix package}).
+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}).
 @end table
 
 
@@ -8298,14 +8591,14 @@ the @code{-m} option of @command{guix package} (@pxref{Invoquer guix package}).
 
 @cindex Distribution Système Guix
 @cindex GuixSD
-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}).  To distinguish between the two, we refer to the
-standalone distribution as the Guix System Distribution, or GuixSD.
+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{Installation du système}), 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.
 
 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
@@ -8434,7 +8727,7 @@ More and more system services are provided (@pxref{Services}), but some may
 be missing.
 
 @item
-More than 6,500 packages are available, but you might occasionally find that
+More than 7,500 packages are available, but you might occasionally find that
 a useful package is missing.
 
 @item
@@ -8487,7 +8780,7 @@ 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{ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz},
+@indicateurl{https://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz},
 where @var{system} is one of:
 
 @table @code
@@ -8503,7 +8796,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 ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig
+$ 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
 
@@ -8739,25 +9032,36 @@ Partition} (ESP) is required.  This partition should be mounted at
 parted /dev/sda set 1 esp on
 @end example
 
+@quotation Remarque
+@vindex grub-bootloader
+@vindex grub-efi-bootloader
+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{Configuration du chargeur d'amorçage}, for more info on
+bootloaders.
+@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 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/sda2}, run:
+the ESP, if you have one and assuming it is @file{/dev/sda1}, run:
 
 @example
-mkfs.fat -F32 /dev/sda2
+mkfs.fat -F32 /dev/sda1
 @end example
 
 Preferably, assign file systems a label so that you can easily and reliably
 refer to them in @code{file-system} declarations (@pxref{Systèmes de fichiers}).
 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/sda1}, a file system with the label @code{my-root} can be created
+@file{/dev/sda2}, a file system with the label @code{my-root} can be created
 with:
 
 @example
-mkfs.ext4 -L my-root /dev/sda1
+mkfs.ext4 -L my-root /dev/sda2
 @end example
 
 @cindex encrypted disk
@@ -8765,12 +9069,12 @@ 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/sda1}, the command sequence would be along
+the root partition on @file{/dev/sda2}, the command sequence would be along
 these lines:
 
 @example
-cryptsetup luksFormat /dev/sda1
-cryptsetup open --type luks /dev/sda1 my-partition
+cryptsetup luksFormat /dev/sda2
+cryptsetup open --type luks /dev/sda2 my-partition
 mkfs.ext4 -L my-root /dev/mapper/my-partition
 @end example
 
@@ -8790,11 +9094,11 @@ system init} afterwards.
 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/sda2}, you would run:
+partition on @file{/dev/sda3}, you would run:
 
 @example
-mkswap /dev/sda2
-swapon /dev/sda2
+mkswap /dev/sda3
+swapon /dev/sda3
 @end example
 
 Alternatively, you may use a swap file.  For example, assuming that in the
@@ -9068,6 +9372,28 @@ Below we discuss the effect of some of the most important fields
 fields), and how to @dfn{instantiate} the operating system using
 @command{guix system}.
 
+@unnumberedsubsubsec Bootloader
+
+@cindex legacy boot, on Intel machines
+@cindex BIOS boot, on Intel machines
+@cindex UEFI boot
+@cindex EFI boot
+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:
+
+@example
+(bootloader-configuration
+  (bootloader grub-efi-bootloader)
+  (target "/boot/efi"))
+@end example
+
+@xref{Configuration du chargeur d'amorçage}, for more information on the available
+configuration options.
+
 @unnumberedsubsubsec Globally-Visible Packages
 
 @vindex %base-packages
@@ -9173,9 +9499,8 @@ this:
 @include os-config-desktop.texi
 @end lisp
 
-@cindex UEFI
-A graphical UEFI system with a choice of lightweight window managers instead
-of full-blown desktop environments would look like this:
+A graphical system with a choice of lightweight window managers instead of
+full-blown desktop environments would look like this:
 
 @lisp
 @include os-config-lightweight-desktop.texi
@@ -10007,7 +10332,7 @@ core services, that may be used in an @code{operating-system} declaration.
 * 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::  L'outil TLP@.
+* Power Management Services::  Extending battery life.
 * Services audio::           MPD@.
 * Services de virtualisation::  Services de virtualisation.
 * Services de contrôle de version::  Fournit des accès distants à des 
@@ -10836,6 +11161,21 @@ job definitions that are passed to mcron (@pxref{G-Expressions}).
 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
+
 @deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]
 Return an mcron service running @var{mcron} that schedules @var{jobs}, a
 list of gexps denoting mcron job specifications.
@@ -11035,7 +11375,7 @@ 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
+       [#: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
@@ -11534,6 +11874,15 @@ used only by protocol version 2.
 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?} (default: @code{#t})
+Whether to allow agent forwarding.
+
+@item @code{allow-tcp-forwarding?} (default: @code{#t})
+Whether to allow TCP forwarding.
+
+@item @code{gateway-ports?} (default: @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).
@@ -12033,17 +12382,21 @@ 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} package.  You can do that directly, like this (you
-need to use the @code{(gnu packages cups)} module):
+@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))))
+             (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
@@ -13135,13 +13488,14 @@ Users need to be in the @code{lp} group to access the D-Bus service.
 @cindex ALSA
 @cindex PulseAudio, sound support
 
-The @code{(gnu services sound)} module provides an @code{alsa-service-type}
-service to generate an ALSA @file{/etc/asound.conf} configuration file.
-This configuration file is what allows applications that produce sound using
-ALSA to be correctly handled.
+The @code{(gnu services sound)} module provides a service to configure the
+Advanced Linux Sound Architecture (ALSA) system, which making PulseAudio the
+prefered ALSA output driver.
 
 @deffn {Variable Scheme} alsa-service-type
-This is the type for the @uref{https://alsa-project.org/, ALSA},
+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
@@ -13155,6 +13509,9 @@ See below for details about @code{alsa-configuration}.
 Data type representing the configuration for @code{alsa-service}.
 
 @table @asis
+@item @code{alsa-plugins} (default: @var{alsa-plugins})
+@code{alsa-plugins} package to use.
+
 @item @code{pulseaudio?} (par défaut : @code{#t})
 Whether ALSA applications should transparently be made to use the
 @uref{http://www.pulseaudio.org/, PulseAudio} sound server.
@@ -13164,11 +13521,47 @@ the same time and to individual control them @i{via} @command{pavucontrol},
 among other things.
 
 @item @code{extra-options} (par défaut : @code{""})
-String to append to the @file{asound.conf} file.
+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 Services de bases de données
 @subsubsection Services de bases de données
 
@@ -15467,6 +15860,39 @@ 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
+Data type representing the configuration of @command{node_exporter}.
+
+@table @asis
+@item @code{package} (default: @code{go-github-com-prometheus-node-exporter})
+The prometheus-node-exporter package to use.
+
+@item @code{web-listen-address} (default: @code{":9100"})
+Bind the web interface to the specified address.
+
+@end table
+@end deftp
 
 @node Services Kerberos
 @subsubsection Services Kerberos
@@ -17320,9 +17746,9 @@ The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is
 @subsubsection Intégration continue
 
 @cindex continuous integration
-@uref{https://notabug.org/mthl/cuirass, 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}).
+@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{Substituts}).
 
 The @code{(gnu services cuirass)} module provides the following service.
 
@@ -17381,7 +17807,7 @@ added specifications.
 @item @code{port} (default: @code{8081})
 Port number used by the HTTP server.
 
-@item --listen=@var{host}
+@item --listen=@var{hôte}
 Listen on the network interface for @var{host}.  The default is to accept
 connections from localhost.
 
@@ -17402,19 +17828,18 @@ Only evaluate specifications and build derivations once.
 When substituting a pre-built binary fails, fall back to building packages
 locally.
 
-@item @code{load-path} (default: @code{'()})
-This allows users to define their own packages and make them visible to
-cuirass as in @command{guix build} command.
-
 @item @code{cuirass} (default: @code{cuirass})
 The Cuirass package to use.
 @end table
 @end deftp
 
-@node Services de gestion de l'énergie
-@subsubsection Services de gestion de l'énergie
+@node Power Management Services
+@subsubsection Power Management Services
 
+@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.
 
@@ -17911,6 +18336,9 @@ 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.
@@ -19662,51 +20090,51 @@ Defaults to @samp{""}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-graph?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-filecount?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-linecount?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-branches?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-subject-links?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-html-serving?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
@@ -20482,20 +20910,33 @@ The type of a bootloader configuration declaration.
 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).
+@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.
+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 exact interpretation depends on the bootloader in question; for
+
+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)} (for GRUB, @pxref{Invoking grub-install,,, grub, GNU GRUB
-Manual}).  For @code{grub-efi-bootloader}, it should be the path to a
-mounted EFI file system.
+@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
@@ -20519,8 +20960,8 @@ 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 GRUB_TERMINAL_OUTPUT (@pxref{Simple configuration,,, grub,GNU GRUB
-manual}).
+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
@@ -20528,7 +20969,8 @@ 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
-GRUB_TERMINAL_INPUT (@pxref{Simple configuration,,, grub,GNU GRUB manual}).
+@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
@@ -20860,7 +21302,7 @@ 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
+@item conteneur
 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
@@ -20929,10 +21371,10 @@ 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}.
 
-@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 --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
 Skip pre-installation safety checks.
@@ -21028,7 +21470,7 @@ shepherd services of the operating system defined in @var{file}.
 @cindex virtual machine
 To run GuixSD in a virtual machine (VM), one can either use the pre-built
 GuixSD VM image distributed at
-@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var{system}.tar.xz}
+@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
@@ -21608,6 +22050,17 @@ 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}).
 
+@item @code{actions} (default: @code{'()})
+@cindex actions, of Shepherd services
+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{documentation}
 A documentation string, as shown when running:
 
@@ -21625,6 +22078,55 @@ This is the list of modules that must be in scope when @code{start} and
 @end table
 @end deftp
 
+@deftp {Data Type} shepherd-action
+This is the data type that defines additional actions implemented by a
+Shepherd service (see above).
+
+@table @code
+@item name
+Symbol naming the action.
+
+@item documentation
+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.
 
@@ -21768,7 +22270,7 @@ check whether a package has a @code{debug} output, use @command{guix package
 @section Mises à jour de sécurité
 
 @cindex security updates
-@cindex security vulnerabilities
+@cindex vulnérabilités
 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
diff --git a/doc/guix.texi b/doc/guix.texi
index 85f51210a3..0b72e5d8ce 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6661,6 +6661,11 @@ The value associated with a flag has to be either the symbol
 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
@@ -8620,7 +8625,7 @@ more information.
 
 @subsubsection Networking
 
-Run the following command see what your network interfaces are called:
+Run the following command to see what your network interfaces are called:
 
 @example
 ifconfig -a
@@ -8887,8 +8892,8 @@ path is actually mounted.
 @item
 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 sets the value of @code{title} to
-@code{'label}.
+your @code{file-system} configuration uses the @code{file-system-label}
+procedure in its @code{device} field.
 
 @item
 If there are encrypted or RAID partitions, make sure to add a
@@ -9266,8 +9271,8 @@ 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}.
 
-Although the command @command{guix system reconfigure} will not modify
-previous generations, must take care when the current generation is not
+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}).
@@ -20056,51 +20061,51 @@ Defaults to @samp{""}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-graph?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-filecount?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-log-linecount?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-branches?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-subject-links?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
-@deftypevr {@code{repository-cgit-configuration} parameter} repo-boolean enable-html-serving?
+@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{#f}.
+Defaults to @samp{disabled}.
 
 @end deftypevr
 
@@ -20326,6 +20331,37 @@ 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 {Data Type} pcscd-configuration
+The data type representing the configuration of @command{pcscd}.
+
+@table @asis
+@item @code{pcsc-lite} (default: @code{pcsc-lite})
+The pcsc-lite package that provides pcscd.
+@item @code{usb-drivers} (default: @code{(list ccid)})
+List of packages that provide USB drivers to pcscd. Drivers are expected to be
+under @file{pcsc/drivers} in the store directory of the package.
+@end table
+@end deftp
+
 @cindex lirc
 @subsubheading Lirc Service
 
diff --git a/gnu/local.mk b/gnu/local.mk
index 99a5ec72f6..e43719811b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -68,6 +68,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/attr.scm				\
   %D%/packages/audio.scm			\
   %D%/packages/augeas.scm			\
+  %D%/packages/authentication.scm		\
   %D%/packages/autogen.scm			\
   %D%/packages/autotools.scm			\
   %D%/packages/avahi.scm			\
@@ -485,6 +486,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/services/monitoring.scm			\
   %D%/services/networking.scm			\
   %D%/services/nfs.scm			\
+  %D%/services/security-token.scm		\
   %D%/services/shepherd.scm			\
   %D%/services/sound.scm			\
   %D%/services/herd.scm				\
@@ -539,6 +541,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/tests/messaging.scm			\
   %D%/tests/networking.scm			\
   %D%/tests/rsync.scm				\
+  %D%/tests/security-token.scm			\
   %D%/tests/ssh.scm				\
   %D%/tests/version-control.scm			\
   %D%/tests/virtualization.scm			\
@@ -565,6 +568,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/aegis-perl-tempdir2.patch           	\
   %D%/packages/patches/aegis-test-fixup-1.patch            	\
   %D%/packages/patches/aegis-test-fixup-2.patch            	\
+  %D%/packages/patches/aegisub-icu59-include-unistr.patch	\
   %D%/packages/patches/agg-am_c_prototype.patch			\
   %D%/packages/patches/amule-crypto-6.patch			\
   %D%/packages/patches/ansible-wrap-program-hack.patch		\
@@ -609,6 +613,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-runtime-asan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
   %D%/packages/patches/classpath-aarch64-support.patch		\
+  %D%/packages/patches/clementine-fix-sqlite.patch		\
   %D%/packages/patches/clementine-remove-crypto++-dependency.patch	\
   %D%/packages/patches/clementine-use-openssl.patch		\
   %D%/packages/patches/clisp-glibc-2.26.patch			\
@@ -712,6 +717,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gd-CVE-2018-5711.patch			\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-freetype-test-failure.patch		\
+  %D%/packages/patches/gdm-CVE-2018-14424.patch			\
   %D%/packages/patches/gemma-intel-compat.patch			\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
@@ -996,8 +1002,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.0.2-CVE-2018-0495.patch	\
   %D%/packages/patches/openssl-1.0.2-CVE-2018-0732.patch	\
-  %D%/packages/patches/openssl-1.1.0-CVE-2018-0495.patch	\
-  %D%/packages/patches/openssl-1.1.0-CVE-2018-0732.patch	\
   %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch		\
   %D%/packages/patches/openssl-c-rehash-in.patch		\
   %D%/packages/patches/orpheus-cast-errors-and-includes.patch	\
@@ -1092,7 +1096,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
   %D%/packages/patches/python-waitress-fix-tests.patch		\
   %D%/packages/patches/qemu-glibc-2.27.patch 			\
-  %D%/packages/patches/qemu-CVE-2018-11806.patch 		\
   %D%/packages/patches/qt4-ldflags.patch			\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
   %D%/packages/patches/qtoctave-qt-5.11-fix.patch		\
@@ -1161,7 +1164,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/tipp10-fix-compiling.patch		\
   %D%/packages/patches/tipp10-remove-license-code.patch		\
   %D%/packages/patches/tk-find-library.patch			\
-  %D%/packages/patches/translate-shell-fix-curl-tests.patch	\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
   %D%/packages/patches/tophat-build-with-later-seqan.patch	\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index edc1349c46..07fdc6ba9d 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -611,9 +611,9 @@ connection alive.")
 (define-public isc-dhcp
   (let* ((bind-major-version "9")
          (bind-minor-version "11")
-         (bind-patch-version "3")
-         (bind-release-type "")         ; for patch release, use "-P"
-         (bind-release-version "")      ; for patch release, e.g. "6"
+         (bind-patch-version "4")
+         (bind-release-type "-P")         ; for patch release, use "-P"
+         (bind-release-version "1")      ; for patch release, e.g. "6"
          (bind-version (string-append bind-major-version
                                       "."
                                       bind-minor-version
@@ -626,7 +626,7 @@ connection alive.")
       (version "4.4.1")
       (source (origin
                 (method url-fetch)
-                (uri (string-append "http://ftp.isc.org/isc/dhcp/"
+                (uri (string-append "https://ftp.isc.org/isc/dhcp/"
                                     version "/dhcp-" version ".tar.gz"))
                 (sha256
                  (base32
@@ -725,12 +725,12 @@ connection alive.")
                 ("bind-source-tarball"
                  ,(origin
                     (method url-fetch)
-                    (uri (string-append "http://ftp.isc.org/isc/bind9/"
+                    (uri (string-append "https://ftp.isc.org/isc/bind9/"
                                         bind-version
                                         "/bind-" bind-version ".tar.gz"))
                     (sha256
                      (base32
-                      "1xbnb2b11274z9frc9y7nvkyxr52qx09bwb97gf9qzzcn8adx78d"))))
+                      "08zyy13b8ydfbg26b3y6mw299qs89ba90gymraqqjsgjicydrq5h"))))
 
                 ;; When cross-compiling, we need the cross Coreutils and sed.
                 ;; Otherwise just use those from %FINAL-INPUTS.
@@ -739,7 +739,7 @@ connection alive.")
                         ("sed" ,sed))
                       '())))
 
-      (home-page "http://www.isc.org/products/DHCP/")
+      (home-page "https://www.isc.org/products/DHCP/")
       (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
       (description
        "ISC's Dynamic Host Configuration Protocol (DHCP) distribution provides a
@@ -751,27 +751,30 @@ tools: server, client, and relay agent.")
 (define-public libpcap
   (package
     (name "libpcap")
-    (version "1.8.1")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.tcpdump.org/release/libpcap-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "07jlhc66z76dipj4j5v3dig8x6h3k6cb36kmnmpsixf3zmlvqgb7"))))
+                "06bhydl4vr4z9c3vahl76f2j96z1fbrcl7wwismgs4sris08inrf"))))
     (build-system gnu-build-system)
-    (native-inputs `(("bison" ,bison) ("flex" ,flex)))
-    (arguments '(#:configure-flags '("--with-pcap=linux")
-                 #:tests? #f))                    ; no 'check' target
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)))
+    (arguments
+     ;; There are some tests in testprogs/, but no automated test suite.
+     '(#:tests? #f))
     (home-page "https://www.tcpdump.org")
     (synopsis "Network packet capture library")
     (description
      "libpcap is an interface for user-level packet capture.  It provides a
 portable framework for low-level network monitoring.  Applications include
 network statistics collection, security monitoring, network debugging, etc.")
-
-    ;; fad-*.c and a couple other files are BSD-4, but the rest is BSD-3.
-    (license license:bsd-3)))
+    (license (list license:bsd-4        ; fad-*.c and several other source files
+                   license:bsd-3        ; pcap/, sockutils.* & others
+                   license:bsd-2))))    ; the rest
 
 (define-public tcpdump
   (package
@@ -1263,7 +1266,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20180629")
+    (version "20180810")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1271,7 +1274,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0rsh7ya5brpbsj7y44k1z77cvgv3zahiy8hvwvl61d6fh3db7pdp"))))
+                "01drf32h0v1s8yd414rgc9bavb52yffrwpnbzfxd9sk1lwssr6v7"))))
     (build-system gnu-build-system)
     (native-inputs `(("flex" ,flex)
                      ("bison" ,bison)))
@@ -1573,34 +1576,31 @@ of supported upstream metrics systems simultaneously.")
 (define-public ansible
   (package
     (name "ansible")
-    (version "2.4.2.0")
+    (version "2.5.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ansible" version))
        (sha256
         (base32
-         "0n3n9py4s3aykiii31xq8g4wmd6693jvby0424pjrg0bna01apri"))
+         "0wbsjjx3xjlm8g50a9j9c6p9rn23jx32yn1234bf5rmj1qgy3p85"))
        (patches (search-patches "ansible-wrap-program-hack.patch"))))
     (build-system python-build-system)
     (native-inputs
-     `(("python2-bcrypt" ,python2-bcrypt)
-       ("python2-pycrypto" ,python2-pycrypto)
-       ("python2-pynacl" ,python2-pynacl)
-       ("python2-httplib2" ,python2-httplib2)
-       ("python2-passlib" ,python2-passlib)
-       ("python2-nose" ,python2-nose)
-       ("python2-mock" ,python2-mock)
-       ("python2-jinja2" ,python2-jinja2)
-       ("python2-pyyaml" ,python2-pyyaml)
-       ("python2-paramiko" ,python2-paramiko)))
+     `(("python-bcrypt" ,python-bcrypt)
+       ("python-pynacl" ,python-pynacl)
+       ("python-httplib2" ,python-httplib2)
+       ("python-passlib" ,python-passlib)
+       ("python-nose" ,python-nose)
+       ("python-mock" ,python-mock)
+       ("python-jinja2" ,python-jinja2)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-paramiko" ,python-paramiko)))
     (inputs
-     `(("python2-pycrypto" ,python2-pycrypto)
-       ("python2-jinja2" ,python2-jinja2)
-       ("python2-pyyaml" ,python2-pyyaml)
-       ("python2-paramiko" ,python2-paramiko)))
-    (arguments
-     `(#:python ,python-2)) ; incompatible with Python 3
+     `(("python-cryptography" ,python-cryptography)
+       ("python-jinja2" ,python-jinja2)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-paramiko" ,python-paramiko)))
     (home-page "https://www.ansible.com/")
     (synopsis "Radically simple IT automation")
     (description "Ansible is a radically simple IT automation system.  It
@@ -1968,16 +1968,16 @@ a new command using the matched rule, and runs it.")
 (define-public di
   (package
     (name "di")
-    (version "4.46")
+    (version "4.47")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz"))
        (sha256
-        (base32 "0cskiqywiqkw44zdg4q78bjns6jjp1dz5lzdxrhpnpldc6075irw"))))
+        (base32 "0zlapxlzjizwzwa8xwrwibhcbkh0wx7n74gvjpp6wlwq7cgiq0xm"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; Obscure test failures.
+     `(#:tests? #f                      ; obscure test failures.
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -2267,21 +2267,21 @@ With sedsed you can master any sed script.  No more secrets, no more hidden
 buffers.")
     (license license:expat)))
 
-(define-public intel-gpu-tools
+(define-public igt-gpu-tools
   (package
-    (name "intel-gpu-tools")
-    (version "1.22")
+    (name "igt-gpu-tools")
+    (version "1.23")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
                                   "intel-gpu-tools/snapshot/"
-                                  "intel-gpu-tools-" version ".tar.gz"))
+                                  name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1jx5w5fr6jp67rcrlp5v79cn8kp9n0wgd5pbfgzamlah5cx6j3yd"))))
+                "0vzv2i4jfv2pkbqby5k3ap9pzidkmajwqmg3s7wnv8i1h33775iq"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; many of the tests try to load kernel modules
+     `(#:tests? #f              ; many of the tests try to load kernel modules
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'autogen
@@ -2290,16 +2290,17 @@ buffers.")
              (setenv "NOCONFIGURE" "1")
              (invoke "sh" "autogen.sh"))))))
     (inputs
-     `(("eudev" ,eudev)
-       ("util-macros" ,util-macros)
+     `(("cairo" ,cairo)
+       ("eudev" ,eudev)
+       ("glib" ,glib)
+       ("kmod" ,kmod)
        ("libdrm" ,libdrm)
        ("libpciaccess" ,libpciaccess)
-       ("kmod" ,kmod)
-       ("procps" ,procps)
-       ("cairo" ,cairo)
        ("libunwind" ,libunwind)
        ("libxrandr" ,libxrandr)
-       ("glib" ,glib)))
+       ("openssl" ,openssl)
+       ("procps" ,procps)
+       ("util-macros" ,util-macros)))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
@@ -2307,17 +2308,20 @@ buffers.")
        ("pkg-config" ,pkg-config)))
     (home-page "https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/")
     (synopsis "Tools for development and testing of the Intel DRM driver")
-    (description "Intel GPU Tools is a collection of tools for development and
+    (description "IGT GPU Tools is a collection of tools for development and
 testing of the Intel DRM driver.  There are many macro-level test suites that
 get used against the driver, including xtest, rendercheck, piglit, and
 oglconform, but failures from those can be difficult to track down to kernel
 changes, and many require complicated build procedures or specific testing
-environments to get useful results.  Therefore, Intel GPU Tools includes
+environments to get useful results.  Therefore, IGT GPU Tools includes
 low-level tools and tests specifically for development and testing of the
 Intel DRM Driver.")
     (supported-systems '("i686-linux" "x86_64-linux"))
     (license license:expat)))
 
+(define-public intel-gpu-tools
+  (deprecated-package "intel-gpu-tools" igt-gpu-tools))
+
 (define-public fabric
   (package
     (name "fabric")
@@ -2396,43 +2400,29 @@ you are running, what theme or icon set you are using, etc.")
 (define-public nnn
   (package
     (name "nnn")
-    (version "1.7")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/jarun/nnn/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0z3lqbfx3y1caxvn7yq90b7whwyq2y32zf8kyd976ilbxpxnxqpv"))))
+    (version "1.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
+                           version "/" name "-v" version ".tar.gz"))
+       (sha256
+        (base32 "1d6z12y4rlg4dzhpm30irpq2ak8hjh5zykkp2n7vxnz5m4ki89zp"))))
     (build-system gnu-build-system)
-    (inputs `(("ncurses" ,ncurses)
-              ("readline" ,readline)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("readline" ,readline)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (arguments
-     '(#:tests? #f ; no tests
+     '(#:tests? #f                      ; no tests
        #:phases
-       ;; We do not provide `ncurses.h' within an `ncursesw'
-       ;; sub-directory, so patch the source accordingly.  See
-       ;; <http://bugs.gnu.org/19018>.
-       ;; Thanks to gtypist maintainer.
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-curses-lib
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "Makefile"
-                 (("-lncursesw")
-                  "-lncurses"))
-               (substitute* "nnn.c"
-                 (("ncursesw\\/curses.h")
-                  "ncurses.h")))
-             #t))
-         (delete 'configure))
+         (delete 'configure))           ; no configure script
        #:make-flags
        (list
         (string-append "PREFIX="
                        (assoc-ref %outputs "out"))
-        (string-append "-Wl,-rpath="
-                       %output "/lib")
         "CC=gcc")))
     (home-page "https://github.com/jarun/nnn")
     (synopsis "Terminal file browser")
@@ -2625,7 +2615,7 @@ Python loading in HPC environments.")
   (let ((real-name "inxi"))
     (package
       (name "inxi-minimal")
-      (version "3.0.14-1")
+      (version "3.0.20-1")
       (source
        (origin
          (method git-fetch)
@@ -2634,7 +2624,7 @@ Python loading in HPC environments.")
                (commit version)))
          (sha256
           (base32
-           "1f342basqlp7hl6zw29fb018jd55dx85a6dmm3sap032a3dgds73"))))
+           "1k9148xnfznch1443niaa3w1kmsw4vp0xpwna6npgmi7zqg06ymy"))))
       (build-system trivial-build-system)
       (inputs
        `(("bash" ,bash)
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 8fe2ee4d23..88e3723a1f 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -103,7 +103,7 @@ header.")
 (define-public gnuastro
   (package
     (name "gnuastro")
-    (version "0.6")
+    (version "0.7")
     (source
      (origin
        (method url-fetch)
@@ -111,7 +111,7 @@ header.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "16a212j9ghdirm11d25s5q5qw32bkjrxsh3rblfyyv29djch34w6"))))
+         "1h4hpj5dd1nz8hx0dkf43as0hl1grcaijg0k3zcd5djg7wgna46y"))))
     (inputs
      `(("cfitsio" ,cfitsio)
        ("gsl" ,gsl)
@@ -135,7 +135,6 @@ programs for the manipulation and analysis of astronomical data.")
              (uri (string-append "https://github.com/Stellarium/" name
                                  "/releases/download/v" version
                                  "/" name "-" version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
                "0vjkwrjy22b4wdjkafm63pmb0fck14ffnylpq8xr91ywycw4blrq"))))
@@ -166,7 +165,7 @@ programs for the manipulation and analysis of astronomical data.")
                       (setenv "QT_QPA_PLATFORM" "offscreen")
                       (setenv "HOME" "/tmp")
                       #t)))))
-    (home-page "http://stellarium.org/")
+    (home-page "https://stellarium.org/")
     (synopsis "3D sky viewer")
     (description "Stellarium is a planetarium.  It shows a realistic sky in
 3D, just like what you see with the naked eye, binoculars, or a telescope.  It
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 488d8faf89..82533da4bb 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -145,24 +145,26 @@ Filter) modules follow the convention of 1V / Octave.")
 (define-public aubio
   (package
     (name "aubio")
-    (version "0.4.1")
+    (version "0.4.6")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "http://aubio.org/pub/aubio-" version ".tar.bz2"))
+                   "https://aubio.org/pub/aubio-" version ".tar.bz2"))
              (sha256
               (base32
-               "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
+               "1yvwskahx1bf3x2fvi6cwah1ay11iarh79fjlqz8s887y3hkpixx"))))
     (build-system waf-build-system)
     (arguments
      `(#:tests? #f  ; no check target
        #:configure-flags
-       '("--enable-fftw3f"
-         "--enable-jack"
-         "--enable-sndfile"
-         "--enable-samplerate"
-         ;; enable compilation with avcodec once available
-         "--disable-avcodec")
+       (list
+        (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")
+        "--enable-fftw3f"
+        "--enable-jack"
+        "--enable-sndfile"
+        "--enable-samplerate"
+        ;; TODO: enable compilation with avcodec once available.
+        "--disable-avcodec")
        #:python ,python-2))
     (inputs
      `(("jack" ,jack-1)
@@ -171,7 +173,7 @@ Filter) modules follow the convention of 1V / Octave.")
        ("fftwf" ,fftwf)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://aubio.org/")
+    (home-page "https://aubio.org/")
     (synopsis "Library for audio labelling")
     (description
      "aubio is a tool designed for the extraction of annotations from audio
@@ -463,14 +465,14 @@ plugins are provided.")
 (define-public calf
   (package
     (name "calf")
-    (version "0.90.0")
+    (version "0.90.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://calf-studio-gear.org/files/calf-"
+              (uri (string-append "https://calf-studio-gear.org/files/calf-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib"))))
+                "0znwx5gidr5n503gya9n8gagr8cfym6cwlbiv2r6iksji7jc4fpb"))))
     (build-system gnu-build-system)
     (inputs
      `(("fluidsynth" ,fluidsynth)
@@ -1726,7 +1728,7 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
                "0f24cd7wkk5l969857g2ydz2kjjrkvvddg1g87xzzs78lsvq8fy3"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f ; no check target
+     `(#:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
          (add-before
@@ -1736,7 +1738,7 @@ included are the command line utilities @code{send_osc} and @code{dump_osc}.")
                     (string-append "-Wl,-rpath="
                                    (assoc-ref outputs "out") "/lib"))
             #t)))))
-    ;; required by lilv-0.pc
+    ;; Required by lilv-0.pc.
     (propagated-inputs
      `(("serd" ,serd)
        ("sord" ,sord)
@@ -2744,7 +2746,7 @@ interface.")
 (define-public qsynth
   (package
     (name "qsynth")
-    (version "0.5.1")
+    (version "0.5.2")
     (source
      (origin
        (method url-fetch)
@@ -2752,10 +2754,10 @@ interface.")
                            "/qsynth-" version ".tar.gz"))
        (sha256
         (base32
-         "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap"))))
+         "1rfkaxq1pyc4hv3l0i6wicianbcbm1wp53kh9i5d4jsljgisd1dv"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no "check" phase
+     `(#:tests? #f                      ; no "check" phase
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (native-inputs
diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm
new file mode 100644
index 0000000000..a58eac9890
--- /dev/null
+++ b/gnu/packages/authentication.scm
@@ -0,0 +1,77 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages authentication)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages))
+
+(define-public oath-toolkit
+  ;; If gcc@7 breaks this package before its next release, try patching it:
+  ;; <https://gitlab.com/oath-toolkit/oath-toolkit/issues/2#note_52958748>.
+  (package
+    (name "oath-toolkit")
+    (version "2.6.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.savannah.nongnu.org/releases/"
+                           name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "182ah8vfbg0yhv6mh1b6ap944d0na6x7lpfkwkmzb6jl9gx4cd5h"))))
+    (build-system gnu-build-system)
+    (arguments
+     ;; TODO ‘--enable-pskc’ causes xmlsec-related test suite failures.
+     `(#:configure-flags
+       (list "--enable-pam")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'delete-static-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (for-each delete-file (find-files lib "\\.a$"))
+               #t))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("linux-pam" ,linux-pam)))       ; for --enable-pam
+    (home-page "https://www.nongnu.org/oath-toolkit/")
+    (synopsis "One-time password (OTP) components")
+    ;; TODO Add the following items after they've been enabled.
+    ;; @item @command{pskctool}, a command-line tool for manipulating secret key
+    ;; files in the Portable Symmetric Key Container (@dfn{PSKC}) format
+    ;; described in RFC6030.
+    ;; @item @code{libpskc}, a shared and static C library for PSKC handling.
+    (description
+     "The @dfn{OATH} (Open AuTHentication) Toolkit provides various components
+for building one-time password (@dfn{OTP}) authentication systems:
+
+@itemize
+@item @command{oathtool}, a command-line tool for generating & validating OTPs.
+@item @code{liboath}, a C library for OATH handling.
+@item @code{pam_oath}, a PAM module for pluggable login authentication.
+@end itemize
+
+Supported technologies include the event-based @dfn{HOTP} algorithm (RFC4226)
+and the time-based @dfn{TOTP} algorithm (RFC6238).")
+    (license (list license:lgpl2.1+     ; the libraries (liboath/ & libpskc/)
+                   license:gpl3+))))    ; the tools (everything else)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index ca880d6c05..cf8be7a9b9 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -484,13 +484,14 @@ detection, and lossless compression.")
 (define-public borg
   (package
     (name "borg")
-    (version "1.1.6")
+    (version "1.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "borgbackup" version))
        (sha256
-        (base32 "0c09j46fi8i7klas0bh82a4whlwnajshk0izkgax6fjxr1sf9lm1"))
+        (base32
+         "1p3zia62vyg9vadkdjzzkzbj4dmgijr7ix5lmhfbxpwy5q9imdgp"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -848,7 +849,7 @@ is like a time machine for your data. ")
 (define-public restic
   (package
     (name "restic")
-    (version "0.9.1")
+    (version "0.9.2")
     ;; TODO Try packaging the bundled / vendored dependencies in the 'vendor/'
     ;; directory.
     (source (origin
@@ -859,7 +860,7 @@ is like a time machine for your data. ")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "15f0rsm2lxk4lmn4773q28g49p68pqyyx0ccp7r556asan73p79m"))))
+                "15bwkydxcg4xhrnqxvxji8wacrsndb1a6frj98wggfaijqzfx3lg"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/restic/restic"
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index dfb0fe6d5a..7e993189d6 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -28,6 +28,7 @@
   #:use-module (gnu packages cran)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages graph)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages web))
 
@@ -802,3 +803,39 @@ information.")
 @dfn{Reproducibility-Optimized Test Statistic} (ROTS) for differential testing
 in omics data.")
     (license license:gpl2+)))
+
+(define-public r-inspect
+  (package
+    (name "r-inspect")
+    (version "1.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "INSPEcT" version))
+       (sha256
+        (base32
+         "1gk0pwyimkswrvgb2xr3c2zy4myi448a2shr5ap65rq9pcpp0l8p"))))
+    (properties `((upstream-name . "INSPEcT")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-biobase" ,r-biobase)
+       ("r-biocgenerics" ,r-biocgenerics)
+       ("r-biocparallel" ,r-biocparallel)
+       ("r-desolve" ,r-desolve)
+       ("r-genomicalignments" ,r-genomicalignments)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-iranges" ,r-iranges)
+       ("r-preprocesscore" ,r-preprocesscore)
+       ("r-proc" ,r-proc)
+       ("r-rootsolve" ,r-rootsolve)
+       ("r-rsamtools" ,r-rsamtools)
+       ("r-s4vectors" ,r-s4vectors)))
+    (home-page "https://bioconductor.org/packages/INSPEcT")
+    (synopsis "Analysis of 4sU-seq and RNA-seq time-course data")
+    (description
+     "INSPEcT (INference of Synthesis, Processing and dEgradation rates in
+Time-Course experiments) analyses 4sU-seq and RNA-seq time-course data in
+order to evaluate synthesis, processing and degradation rates and assess via
+modeling the rates that determines changes in mature mRNA levels.")
+    (license license:gpl2)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 13572b0c75..dce8ab62f1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -720,7 +720,7 @@ e.g. microbiome samples, genomes, metagenomes.")
       (inputs inputs)
       (native-inputs
        `(("perl-test-most" ,perl-test-most)))
-      (home-page "http://search.cpan.org/dist/BioPerl")
+      (home-page "https://metacpan.org/release/BioPerl")
       (synopsis "Bioinformatics toolkit")
       (description
        "BioPerl is the product of a community effort to produce Perl code which
@@ -13275,6 +13275,48 @@ cases include:
 @end enumerate\n")
     (license license:expat)))
 
+(define-public r-circus
+  (package
+    (name "r-circus")
+    (version "0.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/BIMSBbioinfo/ciRcus.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0jhjn3ilb057hbf6yzrihj13ifxxs32y7nkby8l3lkm28dg4p97h"))))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-annotationhub" ,r-annotationhub)
+       ("r-biomart" ,r-biomart)
+       ("r-data-table" ,r-data-table)
+       ("r-dbi" ,r-dbi)
+       ("r-genomicfeatures" ,r-genomicfeatures)
+       ("r-genomicranges" ,r-genomicranges)
+       ("r-ggplot2" ,r-ggplot2)
+       ("r-hash" ,r-hash)
+       ("r-iranges" ,r-iranges)
+       ("r-rcolorbrewer" ,r-rcolorbrewer)
+       ("r-rmysql" ,r-rmysql)
+       ("r-s4vectors" ,r-s4vectors)
+       ("r-stringr" ,r-stringr)
+       ("r-summarizedexperiment" ,r-summarizedexperiment)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
+    (home-page "https://github.com/BIMSBbioinfo/ciRcus")
+    (synopsis "Annotation, analysis and visualization of circRNA data")
+    (description "Circus is an R package for annotation, analysis and
+visualization of circRNA data.  Users can annotate their circRNA candidates
+with host genes, gene featrues they are spliced from, and discriminate between
+known and yet unknown splice junctions.  Circular-to-linear ratios of circRNAs
+can be calculated, and a number of descriptive plots easily generated.")
+    (license license:artistic2.0)))
+
 (define-public r-loomr
   (let ((commit "df0144bd2bbceca6fadef9edc1bbc5ca672d4739")
         (revision "1"))
@@ -13303,3 +13345,64 @@ cases include:
       (description "This package provides an R interface to access, create,
 and modify loom files.  loomR aims to be completely compatible with loompy.")
       (license license:gpl3))))
+
+(define-public gffread
+  ;; We cannot use the tagged release because it is not in sync with gclib.
+  ;; See https://github.com/gpertea/gffread/issues/26
+  (let ((commit "ba7535fcb3cea55a6e5a491d916e93b454e87fd0")
+        (revision "1"))
+    (package
+      (name "gffread")
+      (version (git-version "0.9.12" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gpertea/gffread.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1dl2nbcg96lxpd0drg48ssa8343nf7pw9s9mkrc4mjjmfwsin3ki"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; no check target
+         #:make-flags
+         (list "GCLDIR=gclib")
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-after 'unpack 'copy-gclib-source
+             (lambda* (#:key inputs #:allow-other-keys)
+               (mkdir-p "gclib")
+               (copy-recursively (assoc-ref inputs "gclib-source") "gclib")
+               #t))
+           ;; There is no install target
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin")))
+                 (install-file "gffread" bin))
+               #t)))))
+      (native-inputs
+       `(("gclib-source"
+          ,(let ((version "0.10.3")
+                 (commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
+                 (revision "1"))
+             (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/gpertea/gclib.git")
+                     (commit commit)))
+               (file-name (git-file-name "gclib" version))
+               (sha256
+                (base32
+                 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
+      (home-page "https://github.com/gpertea/gffread/")
+      (synopsis "Parse and convert GFF/GTF files")
+      (description
+       "This package provides a GFF/GTF file parsing utility providing format
+conversions, region filtering, FASTA sequence extraction and more.")
+      ;; gffread is under Expat, but gclib is under Artistic 2.0
+      (license (list license:expat
+                     license:artistic2.0)))))
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index ce1e93ef00..3937fac745 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -179,37 +179,35 @@ XML-RPC over SCGI.")
     (license l:gpl2+)))
 
 (define-public tremc
-  (let ((commit "e06d08d8d76aa0559593ffc1188f4a90100cdbdb")
-        (revision "2"))
-    (package
-      (name "tremc")
-      (version (git-version "0.9.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/louipc/tremc.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "17rf74sajcn5fl718rgl2qk5mw5yz9hrh58hbcg4p55wrazzrm1i"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f ; no test suite
-         #:make-flags
-         (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
-         #:phases
-         (modify-phases %standard-phases
-           ;; The software is just a Python script that must be copied into
-           ;; place.
-           (delete 'configure)
-           (delete 'build))))
-      (synopsis "Console client for the Transmission BitTorrent daemon")
-      (description "Tremc is a console client, with a curses interface, for the
+  (package
+    (name "tremc")
+    (version "0.9.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tremc/tremc.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1yhwvlcyv1s830p5a7q5x3mkb3mbvr5cn5nh7y62l5b6iyyynlvm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The software is just a Python script that must be copied into place.
+         (delete 'configure)
+         (delete 'build))))
+    (inputs
+     `(("python" ,python)))
+    (synopsis "Console client for the Transmission BitTorrent daemon")
+    (description "Tremc is a console client, with a curses interface, for the
 Transmission BitTorrent daemon.")
-      (home-page "https://github.com/louipc/tremc")
-      (license l:gpl3+))))
+    (home-page "https://github.com/tremc/tremc")
+    (license l:gpl3+)))
 
 (define-public transmission-remote-cli
   (package
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 3659115960..4b051e22d4 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -477,7 +477,7 @@ from an audio CD.")
 (define-public abcde
   (package
     (name "abcde")
-    (version "2.9.1")
+    (version "2.9.2")
     (home-page "https://abcde.einval.com/")
     (source (origin
               (method url-fetch)
@@ -485,11 +485,15 @@ from an audio CD.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1msm5snyckynbspz54p9krarn7v9izsi7qyyi2z5y4cinw36xv3h"))
+                "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l"))
               (modules '((guix build utils)))
               (snippet
-               '(begin
+               `(begin
                   (substitute* "Makefile"
+                    ;; Fix abcde 2.9.2 still thinking it's 2.9.1.
+                    ;; XXX This will be fixed in the next release.
+                    (("(abcde_version = abcde-)(2.9.1)" _ good bad)
+                     (string-append good ,version))
                     (("/usr/bin/install")
                      "install")
                     (("^etcdir = .*$")
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index dea2f09022..ee7447b024 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -266,15 +266,15 @@ cloc can handle a greater variety of programming languages.")
 (define-public the-silver-searcher
   (package
     (name "the-silver-searcher")
-    (version "2.1.0")
+    (version "2.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://geoff.greer.fm/ag/releases/the_silver_searcher-"
+                    "https://geoff.greer.fm/ag/releases/the_silver_searcher-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "1m0mih1x4jpswc8ganhqh0gmwbmd2hzmz7402mxfh19s3kcjnrfl"))))
+                "0w1icjqd8hd45rn1y6nbfznk1a6ip54whwbfbhxp7ws2hn3ilqnr"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -282,7 +282,7 @@ cloc can handle a greater variety of programming languages.")
      `(("pcre" ,pcre)
        ("xz" ,xz)
        ("zlib" ,zlib)))
-    (home-page "http://geoff.greer.fm/ag/")
+    (home-page "https://geoff.greer.fm/ag/")
     (synopsis "Fast code searching tool")
     (description
      "The Silver Searcher (@command{ag}) is a tool for quickly searching large
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index c6cd416bdd..8104b9d55c 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -237,8 +237,10 @@ file; as a result, it is often used in conjunction with \"tar\", resulting in
     (version "1.0.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.bzip.org/" version "/bzip2-"
-                                  version ".tar.gz"))
+              ;; XXX The bzip.org domain was allowed to expire.
+              (uri (string-append "https://web.archive.org/web/20180624184806/"
+                                  "http://www.bzip.org/"
+                                  version "/bzip2-" version ".tar.gz"))
               (sha256
                (base32
                 "1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152"))))
@@ -316,7 +318,7 @@ being around twice as fast at compression and six times faster at
 decompression.")
     (license (license:non-copyleft "file://LICENSE"
                                    "See LICENSE in the distribution."))
-    (home-page "http://www.bzip.org/")))
+    (home-page "https://web.archive.org/web/20180801004107/http://www.bzip.org/")))
 
 (define-public lbzip2
   (package
@@ -428,14 +430,14 @@ format are designed to be portable across platforms.")
 (define-public python-lzo
   (package
     (name "python-lzo")
-    (version "1.11")
+    (version "1.12")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "python-lzo" version))
        (sha256
         (base32
-         "11p3ifg14p086byhhin6azx5svlkg8dzw2b5abixik97xd6fm81q"))))
+         "0iakqgd51n1cd7r3lpdylm2rgbmd16y74cra9kcapwg84mlf9a4p"))))
     (build-system python-build-system)
     (arguments
      `(#:test-target "check"
@@ -673,7 +675,7 @@ decompression of some loosely related file formats used by Microsoft.")
          "081mpkjy688lg48997fqh3d7ja12vazmz02fw84495civg4vb4l6"))))
     (build-system perl-build-system)
     ;; TODO: Use our bzip2 package.
-    (home-page "http://search.cpan.org/dist/Compress-Raw-Bzip2")
+    (home-page "https://metacpan.org/release/Compress-Raw-Bzip2")
     (synopsis "Low-level interface to bzip2 compression library")
     (description "This module provides a Perl interface to the bzip2
 compression library.")
@@ -708,7 +710,7 @@ LIB = ~:*~a/lib
 OLD_ZLIB = False
 GZIP_OS_CODE = AUTO_DETECT"
                                  (assoc-ref inputs "zlib")))))))))
-    (home-page "http://search.cpan.org/dist/Compress-Raw-Zlib")
+    (home-page "https://metacpan.org/release/Compress-Raw-Zlib")
     (synopsis "Low-level interface to zlib compression library")
     (description "This module provides a Perl interface to the zlib
 compression library.")
@@ -730,7 +732,7 @@ compression library.")
     (propagated-inputs
      `(("perl-compress-raw-zlib" ,perl-compress-raw-zlib)     ; >=2.081
        ("perl-compress-raw-bzip2" ,perl-compress-raw-bzip2))) ; >=2.081
-    (home-page "http://search.cpan.org/dist/IO-Compress")
+    (home-page "https://metacpan.org/release/IO-Compress")
     (synopsis "IO Interface to compressed files/buffers")
     (description "IO-Compress provides a Perl interface to allow reading and
 writing of compressed data created with the zlib and bzip2 libraries.")
@@ -797,14 +799,14 @@ the LZ4 frame format.")
 (define-public python-lzstring
   (package
     (name "python-lzstring")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "lzstring" version))
        (sha256
         (base32
-         "1d3ck454y41mii0gcjabpmp2skb7n0f9zk232gycqdv8z2jxakfm"))))
+         "18ly9pppy2yspxzw7k1b23wk77k7m44rz2g0271bqgqrk3jn3yhs"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-future" ,python-future)))
@@ -1926,7 +1928,7 @@ recreates the stored directory structure by default.")
     (synopsis  "Provides an interface to Zip archive files")
     (description "The @code{Archive::Zip} module allows a Perl program to
 create, manipulate, read, and write Zip archive files.")
-    (home-page "http://search.cpan.org/dist/Archive-Zip/")
+    (home-page "https://metacpan.org/release/Archive-Zip")
     (license license:perl-license)))
 
 (define-public libzip
@@ -2002,7 +2004,7 @@ of archives.")
         (base32
          "1x15j1q6w6z8hqyqgap0lz4qbq2174wfhksy1fdd653ccbaw5jr5"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Archive-Extract/")
+    (home-page "https://metacpan.org/release/Archive-Extract")
     (synopsis "Generic archive extracting mechanism")
     (description "It allows you to extract any archive file of the type .tar,
 .tar.gz, .gz, .Z, tar.bz2, .tbz, .bz2, .zip, .xz,, .txz, .tar.xz or .lzma
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 106b8c7fe6..411e5a9820 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -4615,3 +4615,235 @@ matches version and feature constraints.")
 write shebang scripts that gracefully accept positional and optional arguments
 and automatically generate usage notices.")
     (license license:gpl2+)))
+
+(define-public r-hash
+  (package
+    (name "r-hash")
+    (version "2.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hash" version))
+       (sha256
+        (base32
+         "0mkx59bmni3b283znvbndnkbar85fzavzdfgmwrhskidsqcz34yz"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/hash/")
+    (synopsis "Implementation of hash/associated arrays/dictionaries")
+    (description
+     "This package implements a data structure similar to hashes in Perl and
+dictionaries in Python but with a purposefully R flavor.  For objects of
+appreciable size, access using hashes outperforms native named lists and
+vectors.")
+    (license license:gpl2+)))
+
+(define-public r-orddom
+  (package
+    (name "r-orddom")
+    (version "3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "orddom" version))
+       (sha256
+        (base32
+         "165axs15fvwhrp89xd87l81q3h2qjll1vrwcsap645cwvb85nwsh"))))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-psych" ,r-psych)))
+    (home-page "https://cran.r-project.org/web/packages/orddom/")
+    (synopsis "Ordinal dominance statistics")
+    (description
+     "This package provides tools to compute ordinal, statistics and effect
+sizes as an alternative to mean comparison: Cliff's delta or success rate
+difference (SRD), Vargha and Delaney's A or the Area Under a Receiver
+Operating Characteristic Curve (AUC), the discrete type of McGraw & Wong's
+Common Language Effect Size (CLES) or Grissom & Kim's Probability of
+Superiority (PS), and the Number needed to treat (NNT) effect size.  Moreover,
+comparisons to Cohen's d are offered based on Huberty & Lowman's Percentage of
+Group (Non-)Overlap considerations.")
+    (license license:gpl2)))
+
+(define-public r-doby
+  (package
+    (name "r-doby")
+    (version "4.6-1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "doBy" version))
+       (sha256
+        (base32
+         "1y02awzid23bxz8hx6j8pxd6i7jaq8pdw3k60rag8y6m69incrw5"))))
+    (properties `((upstream-name . "doBy")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dplyr" ,r-dplyr)
+       ("r-magrittr" ,r-magrittr)
+       ("r-mass" ,r-mass)
+       ("r-matrix" ,r-matrix)
+       ("r-plyr" ,r-plyr)))
+    (home-page "http://people.math.aau.dk/~sorenh/software/doBy/")
+    (synopsis "Groupwise statistics, LSmeans, linear contrasts, and utilities")
+    (description
+     "This package contains:
+
+@itemize
+@item facilities for working with grouped data: @code{do}
+  something to data stratified @code{by} some variables.
+@item implementations of least-squares means, general linear contrasts, and
+@item miscellaneous other utilities.
+@end itemize\n")
+    (license license:gpl2+)))
+
+(define-public r-refgenome
+  (package
+    (name "r-refgenome")
+    (version "1.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "refGenome" version))
+       (sha256
+        (base32
+         "15p0ra2p1pwhy5ixbhsz1g79c5sc2aap4i4c8kil0m2syg9y45sn"))))
+    (properties `((upstream-name . "refGenome")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-dbi" ,r-dbi)
+       ("r-doby" ,r-doby)
+       ("r-rsqlite" ,r-rsqlite)))
+    (home-page "https://cran.r-project.org/web/packages/refGenome/")
+    (synopsis
+     "Gene and splice site annotation using annotation data from Ensembl and UCSC")
+    (description
+     "This package contains functionality for importing and managing of
+downloaded genome annotation data from the Ensembl genome browser (European
+Bioinformatics Institute) and from the UCSC genome browser (University of
+California, Santa Cruz) and annotation routines for genomic positions and
+splice site positions.")
+    (license license:gpl2)))
+
+(define-public r-basix
+  (package
+    (name "r-basix")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "BASIX" version))
+       (sha256
+        (base32
+         "18dkvv1iwskfnlpl6xridcgqpalbbpm2616mvc3hfrc0b26v01id"))))
+    (properties `((upstream-name . "BASIX")))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/BASIX/")
+    (synopsis "Efficient C/C++ toolset for R")
+    (description
+     "BASIX provides some efficient C/C++ implementations of native R
+procedures to speed up calculations in R.")
+    (license license:gpl2)))
+
+(define-public r-blockfest
+  (package
+    (name "r-blockfest")
+    (version "1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "BlockFeST" version))
+       (sha256
+        (base32
+         "0hj7a5as7nxbgjac7lbj6qfwffx3g8x8phpf9a55f1c9cdzi73a5"))))
+    (properties `((upstream-name . "BlockFeST")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-basix" ,r-basix)))
+    (home-page "https://cran.r-project.org/web/packages/BlockFeST/")
+    (synopsis "Bayesian calculation of region-specific fixation index")
+    (description
+     "This package provides an R implementation of an extension of the
+BayeScan software for codominant markers, adding the option to group
+individual SNPs into pre-defined blocks.  A typical application of this new
+approach is the identification of genomic regions, genes, or gene sets
+containing one or more SNPs that evolved under directional selection.")
+    (license license:gpl2)))
+
+(define-public r-hash
+  (package
+    (name "r-hash")
+    (version "2.2.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "hash" version))
+       (sha256
+        (base32
+         "0mkx59bmni3b283znvbndnkbar85fzavzdfgmwrhskidsqcz34yz"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/hash/")
+    (synopsis "Implementation of hash/associated arrays/dictionaries")
+    (description
+     "This package implements a data structure similar to hashes in Perl and
+dictionaries in Python but with a purposefully R flavor.  For objects of
+appreciable size, access using hashes outperforms native named lists and
+vectors.")
+    (license license:gpl2+)))
+
+(define-public r-proc
+  (package
+    (name "r-proc")
+    (version "1.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "pROC" version))
+       (sha256
+        (base32
+         "05ad69a6fxy9k903cw3h4q59ch2jv6qfg9yjdbw3cgiiazcafrlj"))))
+    (properties `((upstream-name . "pROC")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-ggplot2" ,r-ggplot2)
+       ("r-plyr" ,r-plyr)
+       ("r-rcpp" ,r-rcpp)))
+    (home-page "http://expasy.org/tools/pROC/")
+    (synopsis "Display and analyze ROC curves")
+    (description
+     "This package provides tools for visualizing, smoothing and comparing
+receiver operating characteristic (ROC curves).  The area under the
+curve (AUC) can be compared with statistical tests based on U-statistics or
+bootstrap.  Confidence intervals can be computed for (p)AUC or ROC curves.")
+    (license license:gpl3+)))
+
+(define-public r-rootsolve
+  (package
+    (name "r-rootsolve")
+    (version "1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "rootSolve" version))
+       (sha256
+        (base32
+         "08ic6ggcc5dw4nv9xsqkm3vnvswmxyhnqnv1rdjv1h2gy1ivpcq8"))))
+    (properties `((upstream-name . "rootSolve")))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://cran.r-project.org/web/packages/rootSolve/")
+    (synopsis "Tools for the analysis of ordinary differential equations")
+    (description
+     "This package provides routines to find the root of nonlinear functions,
+and to perform steady-state and equilibrium analysis of @dfn{ordinary
+differential equations} (ODE).  It includes routines that:
+
+@enumerate
+@item generate gradient and jacobian matrices (full and banded),
+@item find roots of non-linear equations by the Newton-Raphson method,
+@item estimate steady-state conditions of a system of (differential) equations
+  in full, banded or sparse form, using the Newton-Raphson method, or by
+  dynamically running,
+@item solve the steady-state conditions for uni- and multicomponent 1-D, 2-D,
+  and 3-D partial differential equations, that have been converted to ordinary
+  differential equations by numerical differencing (using the method-of-lines
+  approach).
+@end enumerate\n")
+    (license license:gpl2+)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 730895efd9..ae6150b0ab 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -523,7 +523,7 @@ attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-nowarnings" ,perl-test-nowarnings)))
-    (home-page "http://search.cpan.org/dist/Math-Random-ISAAC-XS")
+    (home-page "https://metacpan.org/release/Math-Random-ISAAC-XS")
     (synopsis "C implementation of the ISAAC PRNG algorithm")
     (description "ISAAC (Indirection, Shift, Accumulate, Add, and Count) is a
 fast pseudo-random number generator.  It is suitable for applications where a
@@ -551,7 +551,7 @@ This package implements the same interface as @code{Math::Random::ISAAC}.")
      `(("perl-test-nowarnings" ,perl-test-nowarnings)))
     (propagated-inputs
      `(("perl-math-random-isaac-xs" ,perl-math-random-isaac-xs)))
-    (home-page "http://search.cpan.org/dist/Math-Random-ISAAC")
+    (home-page "https://metacpan.org/release/Math-Random-ISAAC")
     (synopsis "Perl interface to the ISAAC PRNG algorithm")
     (description "ISAAC (Indirection, Shift, Accumulate, Add, and Count) is a
 fast pseudo-random number generator.  It is suitable for applications where a
@@ -587,7 +587,7 @@ generator.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-type-tiny" ,perl-type-tiny)))
-    (home-page "http://search.cpan.org/dist/Crypt-Random-Source")
+    (home-page "https://metacpan.org/release/Crypt-Random-Source")
     (synopsis "Get weak or strong random data from pluggable sources")
     (description "This module provides implementations for a number of
 byte-oriented sources of random data.")
@@ -616,7 +616,7 @@ byte-oriented sources of random data.")
        ("perl-math-random-isaac" ,perl-math-random-isaac)
        ("perl-math-random-isaac-xs" ,perl-math-random-isaac-xs)
        ("perl-moo" ,perl-moo)))
-    (home-page "http://search.cpan.org/dist/Math-Random-Secure")
+    (home-page "https://metacpan.org/release/Math-Random-Secure")
     (synopsis "Cryptographically secure replacement for rand()")
     (description "This module is intended to provide a
 cryptographically-secure replacement for Perl's built-in @code{rand} function.
@@ -794,14 +794,14 @@ using ctypes is included, and several other language bindings are available.")
 (define-public ccrypt
   (package
     (name "ccrypt")
-    (version "1.10")
+    (version "1.11")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://sourceforge/ccrypt/ccrypt/"
+              (uri (string-append "mirror://sourceforge/ccrypt/"
                                   version "/ccrypt-" version ".tar.gz"))
               (sha256
                (base32
-                "184v9676hx2w875cz04rd3a20wrcms33a1zwybvapb0g2yi6vml7"))))
+                "0kx4a5mhmp73ljknl2lcccmw9z3f5y8lqw0ghaymzvln1984g75i"))))
     (build-system gnu-build-system)
     (home-page "http://ccrypt.sourceforge.net")
     (synopsis "Command-line utility for encrypting and decrypting files and streams")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 59dc5e58cc..15bd7f1efb 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017, 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Kristofer Buffington <kristoferbuffington@gmail.com>
 ;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
@@ -398,7 +398,7 @@ mapping from string keys to string values.")
 (define-public memcached
   (package
     (name "memcached")
-    (version "1.5.8")
+    (version "1.5.10")
     (source
      (origin
        (method url-fetch)
@@ -406,14 +406,14 @@ mapping from string keys to string values.")
              "https://memcached.org/files/memcached-" version ".tar.gz"))
        (sha256
         (base32
-         "1ppnhsqv9047vm0rrmqla56y972f8qqjdb780iz6v922jjcc723k"))))
+         "0jqw3z0408yx0lzc6ykn4d29n02dk31kqnmq9b3ldmcnpl6hck29"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
        ("cyrus-sasl" ,cyrus-sasl)))
     (home-page "https://memcached.org/")
-    (synopsis "In memory caching service")
-    (description "Memcached is a in memory key value store.  It has a small
+    (synopsis "In-memory caching service")
+    (description "Memcached is an in-memory key-value store.  It has a small
 and generic API, and was originally intended for use with dynamic web
 applications.")
     (license license:bsd-3)))
@@ -555,11 +555,11 @@ RDBMS systems (which are deep in functionality).")
     (source (origin
              (method url-fetch)
              (uri (list (string-append
-                          "http://dev.mysql.com/get/Downloads/MySQL-"
+                          "https://dev.mysql.com/get/Downloads/MySQL-"
                           (version-major+minor version) "/"
                           name "-" version ".tar.gz")
                         (string-append
-                          "http://downloads.mysql.com/archives/get/file/"
+                          "https://downloads.mysql.com/archives/get/file/"
                           name "-" version ".tar.gz")))
              (sha256
               (base32
@@ -616,7 +616,7 @@ RDBMS systems (which are deep in functionality).")
        ("ncurses" ,ncurses)
        ("openssl" ,openssl)
        ("zlib" ,zlib)))
-    (home-page "http://www.mysql.com/")
+    (home-page "https://www.mysql.com/")
     (synopsis "Fast, easy to use, and popular database")
     (description
      "MySQL is a fast, reliable, and easy to use relational database
@@ -1159,20 +1159,6 @@ is in the public domain.")
        ((#:configure-flags flags)
         `(cons "--enable-fts5" ,flags))))))
 
-;; This is used by Clementine.
-(define-public sqlite-with-fts3
-  (package (inherit sqlite)
-    (name "sqlite-with-fts3")
-    (arguments
-     (substitute-keyword-arguments (package-arguments sqlite)
-       ((#:configure-flags flags)
-        `(list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE "
-                              "-DSQLITE_ENABLE_UNLOCK_NOTIFY "
-                              "-DSQLITE_ENABLE_DBSTAT_VTAB "
-                              "-DSQLITE_ENABLE_FTS3 "
-                              "-DSQLITE_ENABLE_FTS3_PARENTHESIS "
-                              "-DSQLITE_ENABLE_FTS3_TOKENIZER")))))))
-
 (define-public tdb
   (package
     (name "tdb")
@@ -1225,7 +1211,7 @@ extremely small.")
     (build-system perl-build-system)
     (synopsis "Database independent interface for Perl")
     (description "This package provides an database interface for Perl.")
-    (home-page "http://search.cpan.org/dist/DBI")
+    (home-page "https://metacpan.org/release/DBI")
     (license license:perl-license)))
 
 (define-public perl-dbix-class
@@ -1271,7 +1257,7 @@ extremely small.")
        ("perl-sub-name" ,perl-sub-name)
        ("perl-text-balanced" ,perl-text-balanced)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/DBIx-Class")
+    (home-page "https://metacpan.org/release/DBIx-Class")
     (synopsis "Extensible and flexible object <-> relational mapper")
     (description "An SQL to OO mapper with an object API inspired by
 Class::DBI (with a compatibility layer as a springboard for porting) and a
@@ -1303,7 +1289,7 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
     (propagated-inputs
      `(("perl-carp-clan" ,perl-carp-clan)
        ("perl-dbix-class" ,perl-dbix-class)))
-    (home-page "http://search.cpan.org/dist/DBIx-Class-Cursor-Cached")
+    (home-page "https://metacpan.org/release/DBIx-Class-Cursor-Cached")
     (synopsis "Cursor with built-in caching support")
     (description "DBIx::Class::Cursor::Cached provides a cursor class with
 built-in caching support.")
@@ -1326,7 +1312,7 @@ built-in caching support.")
      `(("perl-module-install" ,perl-module-install)))
     (propagated-inputs
      `(("perl-dbix-class" ,perl-dbix-class)))
-    (home-page "http://search.cpan.org/dist/DBIx-Class-IntrospectableM2M")
+    (home-page "https://metacpan.org/release/DBIx-Class-IntrospectableM2M")
     (synopsis "Introspect many-to-many relationships")
     (description "Because the many-to-many relationships are not real
 relationships, they can not be introspected with DBIx::Class.  Many-to-many
@@ -1385,7 +1371,7 @@ introspected and examined.")
        ("perl-sub-name" ,perl-sub-name)
        ("perl-try-tiny" ,perl-try-tiny)))
     (arguments `(#:tests? #f))          ;TODO: t/20invocations.t fails
-    (home-page "http://search.cpan.org/dist/DBIx-Class-Schema-Loader")
+    (home-page "https://metacpan.org/release/DBIx-Class-Schema-Loader")
     (synopsis "Create a DBIx::Class::Schema based on a database")
     (description "DBIx::Class::Schema::Loader automates the definition of a
 DBIx::Class::Schema by scanning database table definitions and setting up the
@@ -1410,7 +1396,7 @@ columns, primary keys, unique constraints and relationships.")
     (propagated-inputs
      `(("perl-dbi" ,perl-dbi)
        ("postgresql" ,postgresql)))
-    (home-page "http://search.cpan.org/dist/DBD-Pg")
+    (home-page "https://metacpan.org/release/DBD-Pg")
     (synopsis "DBI PostgreSQL interface")
     (description "This package provides a PostgreSQL driver for the Perl5
 @dfn{Database Interface} (DBI).")
@@ -1435,7 +1421,7 @@ columns, primary keys, unique constraints and relationships.")
     (propagated-inputs
      `(("perl-dbi" ,perl-dbi)
        ("mysql" ,mysql)))
-    (home-page "http://search.cpan.org/dist/DBD-mysql")
+    (home-page "https://metacpan.org/release/DBD-mysql")
     (synopsis "DBI MySQL interface")
     (description "This package provides a MySQL driver for the Perl5
 @dfn{Database Interface} (DBI).")
@@ -1462,7 +1448,7 @@ the entire thing in the distribution.  So in order to get a fast transaction
 capable RDBMS working for your Perl project you simply have to install this
 module, and nothing else.")
     (license license:perl-license)
-    (home-page "http://search.cpan.org/~ishigaki/DBD-SQLite/lib/DBD/SQLite.pm")))
+    (home-page "https://metacpan.org/release/DBD-SQLite")))
 
 (define-public perl-sql-abstract
   (package
@@ -1487,7 +1473,7 @@ module, and nothing else.")
        ("perl-moo" ,perl-moo)
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-text-balanced" ,perl-text-balanced)))
-    (home-page "http://search.cpan.org/dist/SQL-Abstract")
+    (home-page "https://metacpan.org/release/SQL-Abstract")
     (synopsis "Generate SQL from Perl data structures")
     (description "This module was inspired by the excellent DBIx::Abstract.
 While based on the concepts used by DBIx::Abstract, the concepts used have
@@ -1517,7 +1503,7 @@ time your data changes.")
        ("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-regexp-common" ,perl-regexp-common)
        ("perl-sql-tokenizer" ,perl-sql-tokenizer)))
-    (home-page "http://search.cpan.org/dist/SQL-SplitStatement")
+    (home-page "https://metacpan.org/release/SQL-SplitStatement")
     (synopsis "Split SQL code into atomic statements")
     (description "This module tries to split any SQL code, even including
 non-standard extensions, into the atomic statements it is composed of.")
@@ -1536,7 +1522,7 @@ non-standard extensions, into the atomic statements it is composed of.")
         (base32
          "1qa2dfbzdlr5qqdam9yn78z5w3al5r8577x06qan8wv58ay6ka7s"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/SQL-Tokenizer")
+    (home-page "https://metacpan.org/release/SQL-Tokenizer")
     (synopsis "SQL tokenizer")
     (description "SQL::Tokenizer is a tokenizer for SQL queries.  It does not
 claim to be a parser or query verifier.  It just creates sane tokens from a
@@ -1757,7 +1743,7 @@ database.  Various higher level database abstractions.")
 (define-public perl-db-file
  (package
   (name "perl-db-file")
-  (version "1.841")
+  (version "1.842")
   (source
     (origin
       (method url-fetch)
@@ -1767,7 +1753,7 @@ database.  Various higher level database abstractions.")
              ".tar.gz"))
       (sha256
         (base32
-          "11fks42kgscpia0mxx4lc9krm7q4gv6w7m5h3m2jr3dl7viv36hn"))))
+          "0w2d99vs9qarng2f9fpg3gchfdzy6an13507jhclcl8wv183h5hg"))))
   (build-system perl-build-system)
   (inputs `(("bdb" ,bdb)))
   (native-inputs `(("perl-test-pod" ,perl-test-pod)))
@@ -1779,7 +1765,7 @@ database.  Various higher level database abstractions.")
                      (substitute* "config.in"
                        (("/usr/local/BerkeleyDB") (assoc-ref inputs "bdb")))
                      #t)))))
-  (home-page "http://search.cpan.org/dist/DB_File")
+  (home-page "https://metacpan.org/release/DB_File")
   (synopsis
     "Perl5 access to Berkeley DB version 1.x")
   (description
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 42dc291975..9f63223453 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -238,7 +238,7 @@ and a Python library.")
 (define-public translate-shell
   (package
     (name "translate-shell")
-    (version "0.9.6.7")
+    (version "0.9.6.8")
     (source
       (origin
         (method url-fetch)
@@ -246,14 +246,13 @@ and a Python library.")
                             version ".tar.gz"))
         (sha256
          (base32
-          "0inv6r3qbihn2ff1sgcly89r04k4vgcbvvyl50ln0mxlapbhpy95"))
-        (patches (search-patches "translate-shell-fix-curl-tests.patch"))
+          "17yc2kwk8957wwxyih0jmsai720ai2yqyvmrqrglcncqg6zdbz9w"))
         (file-name (string-append name "-" version ".tar.gz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (delete 'configure) ; no configure phase
+         (delete 'configure)            ; no configure phase
          (add-after 'install 'emacs-install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out   (assoc-ref outputs "out"))
@@ -275,7 +274,7 @@ and a Python library.")
        ("rlwrap" ,rlwrap)))
     (native-inputs
      `(("emacs" ,emacs-minimal)
-       ("util-linux" ,util-linux))) ; hexdump, for the test
+       ("util-linux" ,util-linux)))     ; hexdump, for the test
     (home-page "https://www.soimort.org/translate-shell/")
     (synopsis "Translations from the command line")
     (description
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 9d05b2444e..f1b3f265fe 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -395,34 +395,31 @@ systems.  Output format is completely customizable.")
 (define-public f3
   (package
     (name "f3")
-    (version "6.0")
+    (version "7.1")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/AltraMayor/f3/archive/"
-                          "v" version ".tar.gz"))
-      (file-name (string-append name "-" version ".tar.gz"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/AltraMayor/f3.git")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
       (sha256
        (base32
-        "1mgbzc1swvgil45md1336j0aqkmkhwmpxical0ln5g09b2qxsanp"))))
+        "0zglsmz683jg7f9wc6vmgljyg9w87pbnjw5x4w6x02w8233zvjqf"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; no check target
+     '(#:tests? #f                      ; no check target
        #:make-flags (list "CC=gcc"
                           (string-append "PREFIX=" %output))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'fix-makefile
-           (lambda _
-             (substitute* "Makefile"
-               ;; Install without setting owner and group
-               (("\\$\\(INSTALL\\) -oroot -groot ") "$(INSTALL) ")
-               ;; also build and install experimental tools
-               (("^all: ") "all: $(EXPERIMENTAL_TARGETS) ")
-               (("^install: ") "install-all: ")
-               (("^install-experimental: ") "install: install-all "))
-             #t)))))
+         (delete 'configure)            ; no configure script
+         (add-after 'build 'build-extra
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "extra" make-flags)))
+         (add-after 'build 'install-extra
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "install-extra" make-flags))))))
     (inputs
      `(("eudev" ,eudev)
        ("parted" ,parted)))
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index d42afb2285..dea925e568 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -37,13 +37,13 @@
 (define-public python-django
   (package
     (name "python-django")
-    (version "1.11.11")
+    (version "1.11.15")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "Django" version))
               (sha256
                (base32
-                "1p0fk0dszci9gx76hyhay3n8n0k8r4sznbdcrpd9g2xl15rps1vl"))))
+                "0h2sl02x2mxr3rl3dy750pzm5kvmx77116fys8rrgw164kc3b0mi"))))
     (build-system python-build-system)
     (arguments
      '(#:modules ((srfi srfi-1)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index a8ac3feaa7..0e80adf609 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -45,6 +45,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages protobuf)
@@ -107,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
+                    "https://ftp.isc.org/isc/bind9/" version "/" name "-"
                     version ".tar.gz"))
               (sha256
                (base32
@@ -583,14 +584,14 @@ synthesis, and on-the-fly re-configuration.")
 (define-public ddclient
   (package
     (name "ddclient")
-    (version "3.8.3")
+    (version "3.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/ddclient/ddclient/ddclient-"
                                   version "/ddclient-" version ".tar.gz"))
               (sha256
                (base32
-                "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy"))))
+                "0fwyhab8yga2yi1kdfkbqxa83wxhwpagmj1w1mwkg2iffh1fjjlw"))))
     (build-system trivial-build-system) ; no Makefile.PL
     (native-inputs
      `(("bash" ,bash)
@@ -598,10 +599,11 @@ synthesis, and on-the-fly re-configuration.")
        ("perl" ,perl)
        ("tar" ,tar)))
     (inputs
-     `(("net-tools" ,net-tools)
-       ("inetutils" ,inetutils) ;logger
-       ("perl-io-socket-ssl" ,perl-io-socket-ssl)
-       ("perl-digest-sha1" ,perl-digest-sha1)))
+     `(("inetutils" ,inetutils)         ; logger
+       ("net-tools" ,net-tools)
+       ("perl-data-validate-ip" ,perl-data-validate-ip)
+       ("perl-digest-sha1" ,perl-digest-sha1)
+       ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
     (arguments
      `(#:modules ((guix build utils)
                   (ice-9 match)
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
index 26120327f4..e154a2b2c1 100644
--- a/gnu/packages/elixir.scm
+++ b/gnu/packages/elixir.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 nee <nee.git@cock.li>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2018 Nils Gillmann <ng0@n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 3a8419ee83..164bc45b22 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -10025,8 +10025,8 @@ perform regression test for packages that provide font-lock rules.")
       (license license:gpl3+))))
 
 (define-public emacs-racket-mode
-  (let ((commit "48f0cb99d3b2ca6066249546d2063d85437251c1")
-        (revision "1"))
+  (let ((commit "1b78827d310b6d655782b7bba0f2360c9ef34ff6")
+        (revision "2"))
     (package
       (name "emacs-racket-mode")
       (version (string-append "0.0.2" "-" revision "."
@@ -10040,7 +10040,7 @@ perform regression test for packages that provide font-lock rules.")
          (file-name (string-append name "-" version "-checkout"))
          (sha256
           (base32
-           "0fxky8xj639bjhiab9way9daqda22301b7w85vm4b4ydgjgnc59x"))))
+           "04mzxcg32av8p6v0pqb0si6qk5qxbrbllx6m3j16fp32bdz71sps"))))
       (build-system emacs-build-system)
       (arguments
        `(#:include '("\\.el$" "\\.rkt$")))
@@ -10197,10 +10197,10 @@ keep Parens and Indentation inline with one another.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-eww
-  (let ((commit "1a09f11b2376dec8237df40140f056be8a256ef0"))
+  (let ((commit "9d36acc433bcf689598b1b4d7d47c9aeb84d6b44"))
     (package
       (name "emacs-helm-eww")
-      (version (git-version "0.1" "2" commit))
+      (version (git-version "0.1" "3" commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -10209,7 +10209,7 @@ keep Parens and Indentation inline with one another.")
                 (file-name (string-append name "-" version "-checkout"))
                 (sha256
                  (base32
-                  "1kqdjhz2xiqw3bxjhfl9namhqrkbc2x70gcv6ljljya5hbkm62sm"))))
+                  "06gnf84gx6qbhcw1h5jhjnvcdxkdpv0npm53x3pgqybbll5rn5dy"))))
       (propagated-inputs
        `(("emacs-helm" ,emacs-helm)))
       (build-system emacs-build-system)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index a59b0f2828..141423d7bf 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -1175,7 +1175,7 @@ play them on systems for which they were never designed!")
 (define-public mame
   (package
     (name "mame")
-    (version "0.199")
+    (version "0.200")
     (source
      (origin
        (method git-fetch)
@@ -1185,7 +1185,7 @@ play them on systems for which they were never designed!")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0rb2k6dxss36jjalbpvj2xsqdwqyqy89qab7jpv8ig1y08dpg36n"))
+         "0ddw8635hdm21lgpf13k1vhfywy3460rwciv93vrqmpkq2dvpmib"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -1211,6 +1211,17 @@ play them on systems for which they were never designed!")
        #:tests? #f                      ;no test in regular release
        #:phases
        (modify-phases %standard-phases
+         ;; Add missing include lines for "fmin" and "ceil" functions.
+         ;; Reported upstream.  Will be fixed in 0.201.
+         (add-after 'unpack 'add-missing-include
+           (lambda _
+             (substitute* "src/devices/cpu/mips/mips3.cpp"
+               (("#include \"ps2vu.h\"" all)
+                (string-append all "\n#include <cmath>")))
+             (substitute* "src/devices/cpu/mips/ps2vif1.cpp"
+               (("#include \"ps2vif1.h\"" all)
+                (string-append all "\n#include <cmath>")))
+             #t))
          (delete 'configure)
          (add-after 'build 'build-documentation
            (lambda _ (invoke "make" "-C" "docs" "man" "info")))
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index f0b2f350c2..45206f71a0 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2018 Nils Gillmann <ng0@n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +24,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (gnu packages)
@@ -38,18 +39,19 @@
 (define-public erlang
   (package
     (name "erlang")
-    (version "21.0")
+    (version "21.0.5")
     (source (origin
-              (method url-fetch)
+              (method git-fetch)
               ;; The tarball from http://erlang.org/download contains many
               ;; pre-compiled files, so we use this snapshot of the source
               ;; repository.
-              (uri (string-append "https://github.com/erlang/otp/archive/OTP-"
-                                  version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (uri (git-reference
+                    (url "https://github.com/erlang/otp.git")
+                    (commit (string-append "OTP-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gv43lra4870xns8b0yjzbq78afzvz9gk6y3q3fa4y4sqcrqwbas"))
+                "0gv83i5ybj1z3ykbbldjzf7dbfjszp84c0yzrpshj611b9wp0176"))
               (patches (search-patches "erlang-man-path.patch"))))
     (build-system gnu-build-system)
     (native-inputs
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 725387ce8e..30143eba34 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -155,29 +155,30 @@ Converts WOFF fonts to OpenType fonts
 (define-public ttf2eot
   (package
     (name "ttf2eot")
-    (version "0.0.2-2")
+    (version "0.0.3")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://storage.googleapis.com/"
-                           "google-code-archive-downloads/v2/"
-                           "code.google.com/ttf2eot/"
-                           "ttf2eot-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wget/ttf2eot.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "1f4dzzmhn0208dvbm3ia5ar6ls9apwc6ampy5blmfxkigi6z0g02"))
+         "0l2yh2ialx7135pjzhjs204kk3br7zxjr09zwaia493by2adzigr"))
        (patches (list (search-patch "ttf2eot-cstddef.patch")))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ;no tests
+     `(#:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ;no configuration
-         (replace 'install
+         (delete 'configure)            ; no configuration
+         (replace 'install              ; no install target
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin")))
-               (install-file "ttf2eot" bin)))))))
+               (install-file "ttf2eot" bin)
+               #t))))))
     (synopsis "Convert from TrueType to Embeddable Open Type")
     (description
      "This package contains a commandline wrapper around OpenTypeUtilities.cpp
@@ -187,7 +188,7 @@ TTF (TrueType/OpenType Font) files.")
     ;; 2/LGPL 2.1", the single derived source file includes only BSD in its
     ;; license header, and the wrapper source contains no license header.
     (license license:bsd-2)
-    (home-page "https://code.google.com/archive/p/ttf2eot/")))
+    (home-page "https://github.com/wget/ttf2eot")))
 
 (define-public woff2
   (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 8ad4b467c6..f9a6d8fb93 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1179,7 +1179,7 @@ manually by a user.")
        ("xdg-user-dirs" ,xdg-user-dirs)))
     (propagated-inputs
      `(("perl-ipc-system-simple" ,perl-ipc-system-simple)))
-    (home-page "http://search.cpan.org/dist/File-BaseDir/")
+    (home-page "https://metacpan.org/release/File-BaseDir")
     (synopsis "Use the Freedesktop.org base directory specification")
     (description
      "@code{File::Basedir} can be used to find directories and files as
@@ -1207,7 +1207,7 @@ application data and cache data.")
     (propagated-inputs
      `(("perl-file-basedir" ,perl-file-basedir)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/~michielb/File-DesktopEntry/")
+    (home-page "https://metacpan.org/release/File-DesktopEntry")
     (synopsis "Handle @file{.desktop} files")
     (description
      "@code{File::DesktopEntry} parses @file{.desktop} files defined by the
@@ -1218,7 +1218,7 @@ applications define in those files.")
 (define-public perl-file-mimeinfo
   (package
     (name "perl-file-mimeinfo")
-    (version "0.28")
+    (version "0.29")
     (source
      (origin
        (method url-fetch)
@@ -1226,7 +1226,7 @@ applications define in those files.")
                            "File-MimeInfo-" version ".tar.gz"))
        (sha256
         (base32
-         "1ipbh63bkh1r2gy5g7q4bzhki8j29mm1jkhbv60p9vwsdys5s91a"))))
+         "1sh8r6vczyz08zm8vfsjmkg6a165wch54akjdrd1vbifcmwjg5pi"))))
     (build-system perl-build-system)
     ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and
     ;; perl-test-tiny as native-inputs.
@@ -1249,7 +1249,7 @@ applications define in those files.")
                                                 "/lib/perl5/site_perl")))))
                          '("mimeopen" "mimetype")))
              #t)))))
-    (home-page "http://search.cpan.org/dist/File-MimeInfo/")
+    (home-page "https://metacpan.org/release/File-MimeInfo")
     (synopsis "Determine file type from the file name")
     (description
      "@code{File::Mimeinfo} can be used to determine the MIME type of a file.
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 130312ad46..8d66317ce7 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -115,7 +115,7 @@ is used in some video games and movies.")
 (define-public deutex
   (package
    (name "deutex")
-   (version "5.1.1")
+   (version "5.1.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://github.com/Doom-Utils/" name
@@ -123,7 +123,7 @@ is used in some video games and movies.")
                                 name "-" version ".tar.xz"))
             (sha256
              (base32
-              "0yqzlb3imkdzy8yd7xc69xk9ajf4dhiz3a9ssphyf4c9rcr440wj"))))
+              "1rj3w4xa0n4jixy4j7p6gbclylbgxvhdnji7xnkydrqii9rxnbp4"))))
    (build-system gnu-build-system)
    (native-inputs `(("asciidoc" ,asciidoc)))
    (home-page "https://github.com/Doom-Utils/deutex")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 453f732a5d..0142fc8ed2 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2017, 2018 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -199,7 +200,8 @@ settings to tweak as well.")
       (build-system gnu-build-system)
       (arguments
        '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-                            "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1")
+                            "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1"
+                            "LOCALIZE=1" "LANGUAGES=all")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
@@ -1082,7 +1084,7 @@ that beneath its ruins lay buried an ancient evil.")
 (define-public angband
   (package
     (name "angband")
-    (version "4.1.2")
+    (version "4.1.3")
     (source
      (origin
        (method url-fetch)
@@ -1091,7 +1093,7 @@ that beneath its ruins lay buried an ancient evil.")
                            "/angband-" version ".tar.gz"))
        (sha256
         (base32
-         "0ahfzb66ihxvkxcbhcib816x40sdsp26b3ravr1xqp44w1whkg1h"))
+         "0vs0314lbdc6rzxn4jnb7zp6n1p1cdb8r53savadn7k9vbwc80ll"))
        (modules '((guix build utils)))
        (snippet
         ;; So, some of the sounds/graphics/tilesets are under different
@@ -1111,7 +1113,7 @@ that beneath its ruins lay buried an ancient evil.")
            #t))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                                 ;no check target
+     `(#:tests? #f                      ; no check target
        #:configure-flags (list (string-append "--bindir=" %output "/bin"))
        #:phases
        (modify-phases %standard-phases
@@ -4888,6 +4890,25 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
                     "See Info-Zip section.")
                    license:public-domain)))) ; stb
 
+(define-public nudoku
+  (package
+    (name "nudoku")
+    (version "1.0.0")
+    (source (origin
+	      (method url-fetch)
+	      (uri (string-append "https://github.com/jubalh/nudoku/"
+                                  "releases/download/" version
+                                  "/nudoku-" version ".tar.xz"))
+	      (sha256
+               (base32
+                "0nr2j2z07nxk70s8xnmmpzccxicf7kn5mbwby2kg6aq8paarjm8k"))))
+    (build-system gnu-build-system)
+    (inputs `(("ncurses" ,ncurses)))
+    (home-page "https://jubalh.github.io/nudoku/")
+    (synopsis "Sudoku for your terminal")
+    (description "Nudoku is a ncurses-based Sudoku game for your terminal.")
+    (license license:gpl3+)))
+
 (define-public the-butterfly-effect
   (package
     (name "the-butterfly-effect")
@@ -5192,14 +5213,17 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
 (define-public fortune-mod
   (package
     (name "fortune-mod")
-    (version "2.4.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/shlomif/fortune-mod/"
-                                  "archive/" name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1hnqpkassh7fwg2jgvybr8mw7vzfikbrhb5r22367ilfwxnl9yd2"))))
+    (version "2.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shlomif/fortune-mod")
+             (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17183z8ls6hrngh8a3374csagqa2acs8jl21dqm7gwj4lk0ghkba"))))
     (build-system cmake-build-system)
     (arguments
      `(#:test-target "check"
@@ -5212,13 +5236,19 @@ Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
                (copy-file cmake-rules
                           (string-append "fortune-mod/cmake/"
                                          (strip-store-file-name cmake-rules)))
-               (chdir "fortune-mod"))))
+               (chdir "fortune-mod")
+               #t)))
          (add-after 'install 'fix-install-directory
-           ;; Move binary from "games/" to "bin/".
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (rename-file (string-append out "/games/fortune")
-                            (string-append out "/bin/fortune"))
+             ;; Move binary from "games/" to "bin/" and remove the latter.  This
+             ;; is easier than patching CMakeLists.txt since the tests hard-code
+             ;; the location as well.
+             (let* ((out   (assoc-ref outputs "out"))
+                    (bin   (string-append out "/bin"))
+                    (games (string-append out "/games")))
+               (rename-file (string-append games "/fortune")
+                            (string-append bin "/fortune"))
+               (rmdir games)
                #t))))))
     (inputs `(("recode" ,recode)))
     (native-inputs
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index c815cdd7ea..56553a6745 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -115,7 +115,7 @@ most common applications of GD involve website development.")
      `(#:make-maker-flags
        (list (string-append "--lib_jpeg_path="
                             (assoc-ref %build-inputs "libjpeg")))))
-    (home-page "http://search.cpan.org/dist/GD")
+    (home-page "https://metacpan.org/release/GD")
     (synopsis "Perl interface to the GD graphics library")
     (description "GD.pm is an autoloadable interface module for libgd, a
 popular library for creating and manipulating PNG files.  With this library
@@ -145,7 +145,7 @@ you can create PNG images on the fly or modify existing files.")
     (propagated-inputs
      `(("perl-gd" ,perl-gd)
        ("perl-image-magick" ,perl-image-magick)))
-    (home-page "http://search.cpan.org/dist/GD-SecurityImage")
+    (home-page "https://metacpan.org/release/GD-SecurityImage")
     (synopsis "Security image generator")
     (description "This module provides a basic interface to create
 security (captcha) images.  The final output is the actual graphic data, the
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index f887f8eb30..a90b217bab 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -142,46 +143,18 @@ translated messages from the catalogs.  Nearly all GNU packages use Gettext.")
 (define-public po4a
   (package
     (name "po4a")
-    (version "0.53")
+    (version "0.54")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
                                   version "/po4a-" version ".tar.gz"))
               (sha256
                (base32
-                "033qrd37zjjzvjl6g55fvhlcrm7gynfx6rj76qpr2852dn0mw069"))))
+                "0l9xc06cr8i5jqycfylr4lynhmkb4ng2534m14kx37bzd4hpcvsr"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'set-search-path
-           (lambda _
-             ;; Work around "dotless @INC" build failure.
-             (setenv "PERL5LIB"
-                     (string-append (getcwd) ":"
-                                    (getenv "PERL5LIB")))
-             #t))
-         ;; FIXME: One test fails as we don't have SGMLS.pm
-         (add-before 'check 'disable-sgml-test
-          (lambda _
-            (delete-file "t/20-sgml.t")
-            #t))
-         (add-before 'check 'disable-asciidoc-test
-           (lambda _
-             (delete-file "t/30-asciidoc.t")
-             #t))
-         (add-before 'check 'disable-yaml-test
-           (lambda _
-             (delete-file "t/32-yaml.t")
-             #t))
-         (add-after 'unpack 'fix-builder
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            (substitute* "Po4aBuilder.pm"
-              ;; By default it tries to install into perl's manpath.
-              (("my \\$mandir = .*$")
-               (string-append "my $mandir = \"" (assoc-ref outputs "out")
-                              "/share/man\";\n")))
-            #t))
          (add-after 'install 'wrap-programs
           (lambda* (#:key outputs #:allow-other-keys)
             ;; Make sure all executables in "bin" find the Perl modules
@@ -200,15 +173,30 @@ translated messages from the catalogs.  Nearly all GNU packages use Gettext.")
                        (find-files (string-append (assoc-ref outputs "out")
                                                   "/share/man")
                                    ".*\\.gz$"))
+             #t))
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             ;; FIXME: ‘Files ../t-03-asciidoc/Titles.po and Titles.po differ’.
+             (delete-file "t/03-asciidoc.t")
+
+             ;; FIXME: ‘Unknown format type: html’, and it's not listed.
+             (delete-file "t/09-html.t")
+
+             ;; FIXME: this test requires SGMLS.pm.
+             (delete-file "t/16-sgml.t")
+
              #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl-module-build" ,perl-module-build)
        ("docbook-xsl" ,docbook-xsl)
-       ("docbook-xml" ,docbook-xml) ;for tests
-       ("texlive" ,texlive-tiny) ;for tests
        ("libxml2" ,libxml2)
-       ("xsltproc" ,libxslt)))
+       ("xsltproc" ,libxslt)
+
+       ;; For tests.
+       ("docbook-xml" ,docbook-xml)
+       ("perl-yaml-tiny" ,perl-yaml-tiny)
+       ("texlive" ,texlive-tiny)))
     (home-page "https://po4a.org/")
     (synopsis "Scripts to ease maintenance of translations")
     (description
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 95d7976bf8..33b77555b5 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -670,7 +670,7 @@ useful for C++.")
 (define-public perl-glib
   (package
     (name "perl-glib")
-    (version "1.326")
+    (version "1.327")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -678,14 +678,14 @@ useful for C++.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0prn9kkdpwjq9qmzqashbhk3pq4gvlrmvm3b10xf1dhc48406382"))))
+                "0n7hjhbh5xhagvb0qjwzg21j22ks0csah0chgk98g4wnfllxjl0k"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
     (inputs
      `(("glib" ,glib)))
-    (home-page "http://search.cpan.org/dist/Glib/")
+    (home-page "https://metacpan.org/release/Glib")
     (synopsis "Perl wrappers for the GLib utility and Object libraries")
     (description "This module provides perl access to GLib and GLib's GObject
 libraries.  GLib is a portability and utility library; GObject provides a
@@ -854,7 +854,7 @@ metadata.")
      `(("dbus" ,dbus)))
     (propagated-inputs
      `(("perl-xml-twig" ,perl-xml-twig)))
-    (home-page "http://search.cpan.org/dist/Net-DBus/")
+    (home-page "https://metacpan.org/release/Net-DBus")
     (synopsis "Extension for the DBus bindings")
     (description "@code{Net::DBus} provides a Perl XS API to the DBus
 inter-application messaging system.  The Perl API covers the core base level
@@ -878,7 +878,7 @@ of the DBus APIs, not concerning itself yet with the GLib or QT wrappers.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("dbus-glib" ,dbus-glib)))
-    (home-page "http://search.cpan.org/~danberr/Net-DBus-GLib-0.33.0/")
+    (home-page "https://metacpan.org/release/Net-DBus-GLib")
     (synopsis "Perl extension for the DBus GLib bindings")
     (description "This package provides an extension to the @code{Net::DBus}
 module allowing integration with the GLib mainloop.  To integrate with the
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 311083395a..8459bf9ac1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2455,7 +2455,7 @@ libxml to ease remote use of the RESTful API.")
 (define-public libsoup
   (package
     (name "libsoup")
-    (version "2.62.2")
+    (version "2.62.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -2463,7 +2463,7 @@ libxml to ease remote use of the RESTful API.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1dkrz1iwsswscayfmjxqv2q00b87snlq9nxdccn5vck0vbinylwy"))))
+                "0whi8p03kpbp68kg6fg3vb7rhykjp7wn3nlbzy9j0p298zjss4nk"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -5309,6 +5309,7 @@ libxml2.")
               (uri (string-append "mirror://gnome/sources/" name "/"
                                   (version-major+minor version) "/"
                                   name "-" version ".tar.xz"))
+              (patches (search-patches "gdm-CVE-2018-14424.patch"))
               (sha256
                (base32
                 "0mxdal6hh345xk2xqmw5192jgpprkbcv1d4bwmnl4arcc00cpp8p"))))
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index c095a966c2..70e7ddbe58 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -585,7 +585,7 @@ and signature functionality from Python programs.")
     (native-inputs
      `(("which" ,which)
        ("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/GnuPG-Interface/")
+    (home-page "https://metacpan.org/release/GnuPG-Interface")
     (synopsis "Perl interface to GnuPG")
     (description "@code{GnuPG::Interface} and its associated modules are
 designed to provide an object-oriented method for interacting with GnuPG,
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3718e939d1..429b0579c8 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -394,7 +394,7 @@ printing and other features typical of a source code editor.")
 (define-public gtksourceview
  (package
    (name "gtksourceview")
-   (version "3.24.7")
+   (version "3.24.8")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
@@ -402,7 +402,7 @@ printing and other features typical of a source code editor.")
                                  name "-" version ".tar.xz"))
              (sha256
               (base32
-               "1rp8zspwyw3mmdgccsas3pa6v7s0hqjaaglg6n4kcls7ccx0vhm5"))))
+               "1zinqid62zjcsq7vy1y4mq1qh3hzd3zj7p8np7g0bdqd37zvi6qy"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
@@ -1289,7 +1289,7 @@ write GNOME applications.")
        ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig)))
     (inputs
      `(("cairo" ,cairo)))
-    (home-page "http://search.cpan.org/dist/Cairo/")
+    (home-page "https://metacpan.org/release/Cairo")
     (synopsis "Perl interface to the cairo 2d vector graphics library")
     (description "Cairo provides Perl bindings for the vector graphics library
 cairo.  It supports multiple output targets, including PNG, PDF and SVG.  Cairo
@@ -1315,7 +1315,7 @@ produces identical output on all those targets.")
      `(("gtk+" ,gtk+-2)))
     (propagated-inputs
      `(("perl-pango" ,perl-pango)))
-    (home-page "http://search.cpan.org/dist/Gtk2/")
+    (home-page "https://metacpan.org/release/Gtk2")
     (synopsis "Perl interface to the 2.x series of the Gimp Toolkit library")
     (description "Perl bindings to the 2.x series of the Gtk+ widget set.
 This module allows you to write graphical user interfaces in a Perlish and
@@ -1343,7 +1343,7 @@ yet remaining very close in spirit to original API.")
     (propagated-inputs
      `(("perl-cairo" ,perl-cairo)
        ("perl-glib" ,perl-glib)))
-    (home-page "http://search.cpan.org/dist/Pango/")
+    (home-page "https://metacpan.org/release/Pango")
     (synopsis "Layout and render international text")
     (description "Pango is a library for laying out and rendering text, with an
 emphasis on internationalization.  Pango can be used anywhere that text layout
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 7453f9fbf1..1d673c606a 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -530,6 +530,9 @@ reporting and test statistics output.")
         (base32
          "1y0b6vg8nfm43v90lxxcydhi6qlxhfy4vpxbzm5ic2w55bh8xjwm"))))
     (build-system haskell-build-system)
+    ;; The official revision of the cabal file allows for HUnit lower than 1.7
+    (arguments
+     `(#:configure-flags (list "--allow-newer=HUnit")))
     (inputs
      `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
        ("ghc-hunit" ,ghc-hunit)
@@ -603,19 +606,21 @@ using Template Haskell")
 (define-public ghc-hunit
   (package
     (name "ghc-hunit")
-    (version "1.3.1.2")
+    (version "1.6.0.0")
     (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/HUnit/HUnit-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/HUnit/"
+                           "HUnit-" version ".tar.gz"))
        (sha256
         (base32
-         "10akdh4fl615rrshxi3m5gf414il1q42z4zqyb6q4jasmscvzpms"))))
+         "1pnhwqq5v8h48gbp3ibv3skfj25mf4zs5svxcavq93p9cswycj3l"))))
     (build-system haskell-build-system)
+    (inputs
+     ;; We cannot use ghc-call-stack there, because it depends on
+     ;; ghc-nanospec, which depends on ghc-hunit.
+     `(("ghc-call-stack" ,ghc-call-stack-boot)))
     (home-page "http://hunit.sourceforge.net/")
     (synopsis "Unit testing framework for Haskell")
     (description
@@ -626,21 +631,20 @@ JUnit tool for Java.")
 (define-public hspec-discover
   (package
     (name "hspec-discover")
-    (version "2.2.4")
+    (version "2.5.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hspec-discover/hspec-discover-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hspec-discover/hspec-discover-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "1bz7wb8v0bx1amiz4bpj34xq97d1ia29n3f654wcrh6lacydp3dv"))))
+         "04aidzi91ccr9bygmfkjzshz34z9vh8wvqj4zinx2clxq6r7gqfz"))))
     (build-system haskell-build-system)
-    (arguments `(#:haddock? #f)) ; Haddock phase fails because there are no
-                                 ; documentation files.
-    (inputs `(("ghc-hspec-meta" ,ghc-hspec-meta)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hspec-meta" ,ghc-hspec-meta)))
     (home-page "https://hspec.github.io/")
     (synopsis "Automatically discover and run Hspec tests")
     (description "hspec-discover is a tool which automatically discovers and
@@ -650,23 +654,22 @@ runs Hspec tests.")
 (define-public ghc-hspec-core
   (package
     (name "ghc-hspec-core")
-    (version "2.2.4")
+    (version "2.5.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hspec-core/hspec-core-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/hspec-core/"
+                           "hspec-core-" version ".tar.gz"))
        (sha256
         (base32
-         "0x845ngfl6vf65fnpb5mm3wj0ql45pz11bnm0x4gxc4ybd9c52ij"))))
+         "1vfrqlpn32s9wiykmkxbnrnd5p56yznw20pf8fwzw78ar4wpz55x"))))
     (build-system haskell-build-system)
     (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing.
     (inputs
      `(("ghc-setenv" ,ghc-setenv)
        ("ghc-ansi-terminal" ,ghc-ansi-terminal)
        ("ghc-async" ,ghc-async)
+       ("ghc-clock" ,ghc-clock)
        ("ghc-quickcheck-io" ,ghc-quickcheck-io)
        ("ghc-hunit" ,ghc-hunit)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -681,17 +684,15 @@ be used to extend Hspec's functionality.")
 (define-public ghc-hspec-meta
   (package
     (name "ghc-hspec-meta")
-    (version "2.2.1")
+    (version "2.4.6")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hspec-meta/hspec-meta-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/hspec-meta/"
+                           "hspec-meta-" version ".tar.gz"))
        (sha256
         (base32
-         "1m1pkrxiglxzwv8gdj5jr1bdbhxvvg6sbl9m61w4565d7k1m8yxa"))))
+         "0qmvk01n79j6skn79r6zalg2pd0x0nqqn9qn8mhg0pgyzcdnfc9b"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
@@ -711,17 +712,15 @@ used to test the in-development version of Hspec.")
 (define-public ghc-hspec
   (package
     (name "ghc-hspec")
-    (version "2.2.4")
+    (version "2.5.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hspec/hspec-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/hspec/"
+                           "hspec-" version ".tar.gz"))
        (sha256
         (base32
-         "1cf90gqvg1iknja6ymxqxyabpahcxni3blqllh81ywbir3whljvj"))))
+         "1yv4k5b5kkig2q3waj28587sq28wms7wfav5a3lq4dra6jybimfm"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-hspec-core" ,ghc-hspec-core)
@@ -740,7 +739,7 @@ Haskell, inspired by the Ruby library RSpec.")
 (define-public ghc-hspec-contrib
   (package
     (name "ghc-hspec-contrib")
-    (version "0.3.0")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -748,7 +747,7 @@ Haskell, inspired by the Ruby library RSpec.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "006syw8xagfhsx06ws9ywig1qx5lk4cgl7sq6pbid1s64c72mxn4"))))
+                "13579xdqwbsy8k0vxdcvgy932d4p76mij1rzkzbpqbspfn7399yv"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-hspec-core" ,ghc-hspec-core)
@@ -766,18 +765,19 @@ Haskell, inspired by the Ruby library RSpec.")
 (define-public ghc-hspec-expectations
   (package
     (name "ghc-hspec-expectations")
-    (version "0.7.2")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/hspec-expectations/hspec-expectations-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "hspec-expectations/hspec-expectations-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "1w56jiqfyl237sr207gh3b0l8sr9layy0mdsgd5wknzb49mif6ip"))))
+         "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1"))))
     (build-system haskell-build-system)
+    ;; Tests depend on ghc-nanospec.
+    (arguments '(#:tests? #f))
     (inputs `(("ghc-hunit" ,ghc-hunit)))
     (home-page "https://github.com/sol/hspec-expectations")
     (synopsis "Catchy combinators for HUnit")
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 1f19f82f3f..a043ffcc0d 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -36,17 +36,15 @@
 (define-public ghc-tagsoup
   (package
     (name "ghc-tagsoup")
-    (version "0.14.3")
+    (version "0.14.6")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/tagsoup/tagsoup-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/tagsoup/"
+                           "tagsoup-" version ".tar.gz"))
        (sha256
         (base32
-         "00j2rm2sx0syn16kg2402fz4k8yqfl9knmi367jsiycds1q9zzf9"))))
+         "1yv3dbyb0i1yqm796jgc4jj5kxkla1sxb3b2klw5ks182kdx8kjb"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-text" ,ghc-text)))
     (native-inputs
@@ -93,20 +91,42 @@ for screen-scraping.")
     (description "HTTP cookie parsing and rendering library for Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-httpd-shed
+  (package
+    (name "ghc-httpd-shed")
+    (version "0.4.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/httpd-shed/"
+                           "httpd-shed-" version ".tar.gz"))
+       (sha256
+        (base32
+         "064jy1mqhnf1hvq6s04wlhmp916rd522x58djb9qixv13vc8gzxh"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-network-uri" ,ghc-network-uri)
+       ("ghc-network" ,ghc-network)))
+    (home-page "https://hackage.haskell.org/package/httpd-shed")
+    (synopsis "Simple web-server with an interact style API")
+    (description
+     "This web server promotes a function from @code{Request} to @code{IO
+Response} into a local web server.  The user can decide how to interpret the
+requests, and the library is intended for implementing Ajax APIs.")
+    (license license:bsd-3)))
+
 (define-public ghc-http-types
   (package
     (name "ghc-http-types")
-    (version "0.11")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/http-types/http-types-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/http-types/"
+                           "http-types-" version ".tar.gz"))
        (sha256
         (base32
-         "08w30rf1i7kbh2j1iajqmj6yhhmglnb8kjggc8kdni3xahhrgcss"))))
+         "1wv9k6nlvkdsxwlr7gaynphvzmvi5211gvwq96mbcxgk51a739rz"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-doctest" ,ghc-doctest)
@@ -127,29 +147,36 @@ both client and server code).")
 (define-public ghc-http
   (package
     (name "ghc-http")
-    (version "4000.3.3")
+    (version "4000.3.12")
     (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/HTTP/HTTP-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/HTTP/"
+                           "HTTP-" version ".tar.gz"))
        (sha256
         (base32
-         "1wlvvqcxsnd2is3khsla0vd8i9cy12v1pg6d6i13ihcd131a7bdv"))))
+         "140r6qy1ay25piv0z3hih11zhigyi08nkwc32097j43pjff6mzx3"))))
     (build-system haskell-build-system)
     (native-inputs
-     `(("ghc-hunit" ,ghc-hunit)))
+     `(("ghc-httpd-shed" ,ghc-httpd-shed)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
     (inputs
-     `(("ghc-old-time" ,ghc-old-time)
+     `(("ghc-case-insensitive" ,ghc-case-insensitive)
+       ("ghc-conduit" ,ghc-conduit)
+       ("ghc-conduit-extra" ,ghc-conduit-extra)
+       ("ghc-http-types" ,ghc-http-types)
+       ("ghc-old-time" ,ghc-old-time)
        ("ghc-parsec" ,ghc-parsec)
+       ("ghc-puremd5" ,ghc-puremd5)
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-network" ,ghc-network)
-       ("ghc-network-uri" ,ghc-network-uri)))
+       ("ghc-network-uri" ,ghc-network-uri)
+       ("ghc-split" ,ghc-split)))
     (arguments
-     `(#:tests? #f))  ; FIXME: currently missing libraries used for tests.
+     `(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
     (home-page "https://github.com/haskell/HTTP")
     (synopsis "Library for client-side HTTP")
     (description
@@ -161,7 +188,7 @@ responses coming back.")
 (define-public ghc-http-client
   (package
     (name "ghc-http-client")
-    (version "0.5.7.1")
+    (version "0.5.13.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -169,27 +196,28 @@ responses coming back.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "19cvnnfcjj2m3pgs6ivyjs21rw9wx5ynarh6hvb27a76cscai2fy"))))
+                "0szwbgvkkdz56lgi91armkagmb7nnfwbpp4j7cm9zhmffv3ba8g1"))))
     (build-system haskell-build-system)
     ;; Tests require access to the web.
     (arguments `(#:tests? #f))
     (inputs
-     `(("ghc-text" ,ghc-text)
-       ("ghc-http-types" ,ghc-http-types)
+     `(("ghc-async" ,ghc-async)
+       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
        ("ghc-blaze-builder" ,ghc-blaze-builder)
-       ("ghc-data-default-class" ,ghc-data-default-class)
-       ("ghc-network" ,ghc-network)
-       ("ghc-streaming-commons" ,ghc-streaming-commons)
        ("ghc-case-insensitive" ,ghc-case-insensitive)
-       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
        ("ghc-cookie" ,ghc-cookie)
+       ("ghc-data-default-class" ,ghc-data-default-class)
        ("ghc-exceptions" ,ghc-exceptions)
-       ("ghc-random" ,ghc-random)
+       ("ghc-http-types" ,ghc-http-types)
+       ("ghc-memory" ,ghc-memory)
        ("ghc-mime-types" ,ghc-mime-types)
-       ("ghc-network-uri" ,ghc-network-uri)
        ("ghc-monad-control" ,ghc-monad-control)
-       ("ghc-zlib" ,ghc-zlib)
-       ("ghc-async" ,ghc-async)))
+       ("ghc-network" ,ghc-network)
+       ("ghc-network-uri" ,ghc-network-uri)
+       ("ghc-random" ,ghc-random)
+       ("ghc-streaming-commons" ,ghc-streaming-commons)
+       ("ghc-text" ,ghc-text)
+       ("ghc-zlib" ,ghc-zlib)))
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)))
     (home-page "https://github.com/snoyberg/http-client")
@@ -297,15 +325,16 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
 (define-public ghc-http-conduit
   (package
     (name  "ghc-http-conduit")
-    (version "2.2.4")
+    (version "2.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "http-conduit-" version "/" "http-conduit-"
                            version ".tar.gz"))
-       (sha256 (base32
-                "1wcl3lpg4v1ylq9j77j9fmf6l9qbmp8dmj3a9829q19q6bbgza7l"))))
+       (sha256
+        (base32
+         "1iay4hr0mj8brkxvgkv1liqa8irl9axfc3qhn8qsvcyq4n1l95km"))))
     (build-system haskell-build-system)
     ;; FIXME: `httpLbs TLS` in test-suite `test` fails with
     ;; ConnectionFailure getProtocolByName: does not exist (no such protocol
@@ -322,7 +351,8 @@ and HPACK.  Currently HTTP/2 16 framing and HPACK 10 is supported.")
        ("ghc-http-client-tls" ,ghc-http-client-tls)
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-mtl" ,ghc-mtl)
-       ("ghc-exceptions" ,ghc-exceptions)))
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-unliftio" ,ghc-unliftio)))
     (native-inputs
      `(("ghc-hunit" ,ghc-hunit)
        ("ghc-hspec" ,ghc-hspec)
@@ -714,7 +744,8 @@ Strict, Transitional and Frameset variants.")
          "0r0acv47nh75bmf7kjyfvhcwz8f02rn9x0a1l80pzgyczfrsmkmf"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs
      `(("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-text" ,ghc-text)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 7f14c59450..7347c87534 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -453,6 +453,61 @@ interactive environment for the functional language Haskell.")
 determine the hostname.")
     (license license:bsd-3)))
 
+(define-public ghc-convertible
+  (package
+    (name "ghc-convertible")
+    (version "1.1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/convertible/"
+                           "convertible-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v18ap1mccnndgxmbfgyjdicg8jlss01bd5fq8a576dr0h4sgyg9"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-old-time" ,ghc-old-time)
+       ("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-text" ,ghc-text)))
+    (home-page "https://hackage.haskell.org/package/convertible")
+    (synopsis "Typeclasses and instances for converting between types")
+    (description
+     "This package provides a typeclass with a single function that is
+designed to help convert between different types: numeric values, dates and
+times, and the like.  The conversions perform bounds checking and return a
+pure @code{Either} value.  This means that you need not remember which specific
+function performs the conversion you desire.")
+    (license license:bsd-3)))
+
+(define-public ghc-double-conversion
+  (package
+    (name "ghc-double-conversion")
+    (version "2.0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "double-conversion/double-conversion-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0sx2kc1gw72mjvd8vph8bbjw5whfxfv92rsdhjg1c0al75rf3ka4"))))
+    (build-system haskell-build-system)
+    (inputs `(("ghc-text" ,ghc-text)))
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)
+       ("ghc-test-framework" ,ghc-test-framework)
+       ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+       ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
+    (home-page "https://github.com/bos/double-conversion")
+    (synopsis "Fast conversion between double precision floating point and text")
+    (description
+     "This package provides a library that performs fast, accurate conversion
+between double precision floating point and text.")
+    (license license:bsd-3)))
+
 (define-public ghc-libxml
   (package
     (name "ghc-libxml")
@@ -1121,17 +1176,15 @@ unwanted suggestions, and to add your own custom suggestions.")
 (define-public ghc-resourcet
   (package
     (name "ghc-resourcet")
-    (version "1.1.7.5")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/resourcet/resourcet-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/resourcet/"
+                           "resourcet-" version ".tar.gz"))
        (sha256
         (base32
-         "0nj0gwfd05divpdn7m47gy6bpcrwn3zk81gc303k0smrbqi0xlq5"))))
+         "0rzjzh34s36ssign7akqjnwnjxf11c3511wk7ky0xxy0dqmc2rg7"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-transformers-base" ,ghc-transformers-base)
@@ -1139,7 +1192,8 @@ unwanted suggestions, and to add your own custom suggestions.")
        ("ghc-transformers-compat" ,ghc-transformers-compat)
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-mmorph" ,ghc-mmorph)
-       ("ghc-exceptions" ,ghc-exceptions)))
+       ("ghc-exceptions" ,ghc-exceptions)
+       ("ghc-unliftio-core" ,ghc-unliftio-core)))
     (native-inputs
      `(("ghc-lifted-base" ,ghc-lifted-base)
        ("ghc-hspec" ,ghc-hspec)))
@@ -1414,20 +1468,20 @@ version 1.3).")
 (define-public ghc-streaming-commons
   (package
     (name "ghc-streaming-commons")
-    (version "0.1.16")
+    (version "0.2.1.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/streaming-commons/streaming-commons-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "streaming-commons/streaming-commons-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "0vhhm0z88b1r6s50bskdfh73acwfypm614nycmi9jwiyh84zbz8p"))))
+         "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-blaze-builder" ,ghc-blaze-builder)
+     `(("ghc-async" ,ghc-async)
+       ("ghc-blaze-builder" ,ghc-blaze-builder)
        ("ghc-network" ,ghc-network)
        ("ghc-random" ,ghc-random)
        ("ghc-stm" ,ghc-stm)
@@ -1698,6 +1752,27 @@ School of Functional Programming', 1995.  See
 @uref{https://web.cecs.pdx.edu/~mpj/pubs/springschool.html, the paper}.")
     (license license:bsd-3)))
 
+(define-public ghc-parsec-numbers
+  (package
+    (name "ghc-parsec-numbers")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "parsec-numbers/parsec-numbers-" version ".tar.gz"))
+       (sha256
+        (base32 "1gzy4v3r02kvdxvgg1nj83mmb6aph2v4ilf9c7y6nbvi2x49l0bp"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-parsec" ,ghc-parsec)))
+    (home-page "https://hackage.haskell.org/package/parsec-numbers")
+    (synopsis "Utilities for parsing numbers from strings")
+    (description
+     "This package provides the number parsers without the need to use a large
+(and unportable) token parser.")
+    (license license:bsd-3)))
+
 (define-public ghc-paths
   (package
     (name "ghc-paths")
@@ -1769,7 +1844,7 @@ environment variables.")
 (define-public ghc-setlocale
   (package
     (name "ghc-setlocale")
-    (version "1.0.0.4")
+    (version "1.0.0.6")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1777,7 +1852,7 @@ environment variables.")
                     version "/setlocale-" version ".tar.gz"))
               (sha256
                (base32
-                "1sd73zgpijr9xjdj5p562cmlcxmx5iff5k8xh9b6rpcgrgnnlf9j"))))
+                "1rl8qb8vzv8fdbczy2dxwgn4cb68lfrjdxf2w8nn9wy1acqzcyjq"))))
     (build-system haskell-build-system)
     (home-page "https://hackage.haskell.org/package/setlocale")
     (synopsis "Haskell bindings to setlocale")
@@ -2512,6 +2587,41 @@ Haskell library @code{regex-base}.")
      "This provides an extra text interface for regex-tdfa.")
     (license license:bsd-3)))
 
+(define-public ghc-regex
+  (package
+    (name "ghc-regex")
+    (version "1.0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/regex/"
+                           "regex-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1sjkpkgv4phy5b5v2lr89x4vx4dh44pj0sbvlsp6n86w9v6v4jwb"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-base-compat" ,ghc-base-compat)
+       ("ghc-hashable" ,ghc-hashable)
+       ("ghc-regex-base" ,ghc-regex-base)
+       ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin)
+       ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+       ("ghc-regex-tdfa-text" ,ghc-regex-tdfa-text)
+       ("ghc-text" ,ghc-text)
+       ("ghc-time-locale-compat" ,ghc-time-locale-compat)
+       ("ghc-unordered-containers" ,ghc-unordered-containers)
+       ("ghc-utf8-string" ,ghc-utf8-string)))
+    (home-page "http://regex.uk")
+    (synopsis "Toolkit for regex-base")
+    (description
+     "This package provides a regular expression toolkit for @code{regex-base}
+with compile-time checking of regular expression syntax, data types for
+matches and captures, a text replacement toolkit, portable options, high-level
+AWK-like tools for building text processing apps, regular expression macros
+with parsers and test bench, comprehensive documentation, tutorials and
+copious examples.")
+    (license license:bsd-3)))
+
 (define-public ghc-parsers
   (package
     (name "ghc-parsers")
@@ -3459,17 +3569,16 @@ instances of the @code{Pretty} class.")
 (define-public ghc-ansi-wl-pprint
   (package
     (name "ghc-ansi-wl-pprint")
-    (version "0.6.7.3")
+    (version "0.6.8.2")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-"
-             version
-             ".tar.gz"))
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "ansi-wl-pprint/ansi-wl-pprint-"
+                           version ".tar.gz"))
        (sha256
         (base32
-         "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p"))))
+         "0gnb4mkqryv08vncxnj0bzwcnd749613yw3cxfzw6y3nsldp4c56"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-ansi-terminal" ,ghc-ansi-terminal)))
@@ -4434,6 +4543,14 @@ forms of the Yoneda lemma, and (co)density (co)monads for Haskell.")
 call stacks with different versions of the compiler.")
     (license license:expat)))
 
+;; This is used as an input to ghc-hunit.  We cannot use ghc-call-stack there,
+;; because it depends on ghc-nanospec, which depends on ghc-hunit.
+(define-public ghc-call-stack-boot
+  (package
+    (inherit ghc-call-stack)
+    (arguments '(#:tests? #f))
+    (inputs '())))
+
 (define-public ghc-statevar
   (package
     (name "ghc-statevar")
@@ -5079,7 +5196,7 @@ and bytestrings.")
 (define-public ghc-pandoc-types
   (package
     (name "ghc-pandoc-types")
-    (version "1.17.3.1")
+    (version "1.17.5.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5087,7 +5204,7 @@ and bytestrings.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0dhp5bcjl6605n2chiab5rp51zir3671gxkmwy34znh0s3vp85jb"))))
+                "1q6v2bynij724fv347mhqxdscwifzrx5jb9mq80608qf638fn717"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags (list "--allow-newer=QuickCheck")))
@@ -5120,6 +5237,9 @@ building up, manipulating and serialising @code{Pandoc} structures.")
               (sha256
                (base32
                 "1csipjdq00iiq77k2wlrg4i7afrzlh8nl585q785xzw7nn45b0n8"))))
+    (arguments
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs
      `(("ghc-syb" ,ghc-syb)
        ("ghc-aeson" ,ghc-aeson-for-pandoc-1)
@@ -5128,14 +5248,14 @@ building up, manipulating and serialising @code{Pandoc} structures.")
 (define-public ghc-texmath
   (package
     (name "ghc-texmath")
-    (version "0.10.1.1")
+    (version "0.11.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "texmath/texmath-" version ".tar.gz"))
               (sha256
                (base32
-                "0q2fld5mdcd6j1n3rrg3bjpndbgbn17cwg0xbnvscrpa0s767jaj"))))
+                "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-syb" ,ghc-syb)
@@ -5337,7 +5457,7 @@ as invoked.\" This library tries to provide the missing path.")
 (define-public ghc-enclosed-exceptions
   (package
     (name "ghc-enclosed-exceptions")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
@@ -5345,8 +5465,11 @@ as invoked.\" This library tries to provide the missing path.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1wc9h6zdnb5impvvml6vnjapajjanw7zgpnzg7c0v7115nwfm6vv"))))
+                "1fghjj7nkiddrf03ks8brjpr5x25yi9fs7xg6adbi4mc2gqr6vdg"))))
     (build-system haskell-build-system)
+    ;; FIXME: one of the tests blocks forever:
+    ;; "thread blocked indefinitely in an MVar operation"
+    (arguments '(#:tests? #f))
     (inputs
      `(("ghc-lifted-base" ,ghc-lifted-base)
        ("ghc-monad-control" ,ghc-monad-control)
@@ -5612,22 +5735,27 @@ template-haskell abstract syntax.")
 (define-public ghc-conduit
   (package
     (name "ghc-conduit")
-    (version "1.2.12.1")
+    (version "1.3.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "conduit/conduit-" version ".tar.gz"))
               (sha256
                (base32
-                "0zl6gflh7y36y2vypjhqx13nhkk5y3h12c1zj7kjfclrmwnvnwh0"))))
+                "1sangm0qqi9dzlq95746a3kl14k8b09592a423shxjf2a0b1yx5v"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-exceptions" ,ghc-exceptions)
        ("ghc-lifted-base" ,ghc-lifted-base)
+       ("ghc-mono-traversable" ,ghc-mono-traversable)
        ("ghc-mmorph" ,ghc-mmorph)
        ("ghc-mtl" ,ghc-mtl)
        ("ghc-resourcet" ,ghc-resourcet)
+       ("ghc-silently" ,ghc-silently)
        ("ghc-transformers-base" ,ghc-transformers-base)
+       ("ghc-unliftio" ,ghc-unliftio)
+       ("ghc-unliftio-core" ,ghc-unliftio-core)
+       ("ghc-vector" ,ghc-vector)
        ("ghc-void" ,ghc-void)))
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
@@ -6196,7 +6324,7 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
-    (version "2.0.6")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
@@ -6204,7 +6332,7 @@ provided.  Skylighting is intended to be the successor to highlighting-kate.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1vhj6splykksb1mkxv5cs0361nj12qn23a3y1i8j5dc637lkdwpj"))))
+         "1dqin92w513l7whg5wdgrngnxsj5mb8gppfvn7kjgyv2pdgpy0zy"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-aeson" ,ghc-aeson)
@@ -6376,10 +6504,40 @@ dependency that depends on a large C library, and @code{rfc5051} might be
 better for some purposes.")
     (license license:bsd-3)))
 
+(define-public ghc-typed-process
+  (package
+    (name "ghc-typed-process")
+    (version "0.2.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "typed-process/typed-process-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0c6gvgvjyncbni9a5bvpbglknd4yclr3d3hfg9bhgahmkj40dva2"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-async" ,ghc-async)
+       ("ghc-stm" ,ghc-stm)))
+    (native-inputs
+     `(("ghc-base64-bytestring" ,ghc-base64-bytestring)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)
+       ("ghc-temporary" ,ghc-temporary)))
+    (home-page "https://haskell-lang.org/library/typed-process")
+    (synopsis "Run external processes with strong typing of streams")
+    (description
+     "This library provides the ability to launch and interact with external
+processes.  It wraps around the @code{process} library, and intends to improve
+upon it.")
+    (license license:expat)))
+
 (define-public ghc-conduit-extra
   (package
     (name "ghc-conduit-extra")
-    (version "1.1.14")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -6388,7 +6546,7 @@ better for some purposes.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "1ij3qcfk7q90fl6gklpy2k5ka9jgzrvs8frq0gy7gdcgyaabqfkg"))))
+         "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-conduit" ,ghc-conduit)
@@ -6396,6 +6554,7 @@ better for some purposes.")
        ("ghc-monad-control" ,ghc-monad-control)
        ("ghc-text" ,ghc-text)
        ("ghc-transformers-base" ,ghc-transformers-base)
+       ("ghc-typed-process" ,ghc-typed-process)
        ("ghc-async" ,ghc-async)
        ("ghc-attoparsec" ,ghc-attoparsec)
        ("ghc-blaze-builder" ,ghc-blaze-builder)
@@ -8238,6 +8397,17 @@ between 2 and 3 times faster than the Mersenne Twister.")
         (base32
          "0w4hf598lpxfg58rnimcqxrbnpqq2jmpjx82qa5md3q6r90hlipd"))))
     (build-system haskell-build-system)
+    ;; The limits have been adjusted in a revision of the cabal file.
+    (arguments
+     '(#:configure-flags (list "--allow-newer=vector")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The tests cannot be built due to type errors.
+         (add-after 'unpack 'do-not-build-quickcheck-tests
+           (lambda _
+             (substitute* "vector-algorithms.cabal"
+               (("\\!flag\\(properties\\)") "True"))
+             #t)))))
     (inputs
      `(("ghc-vector" ,ghc-vector)
        ("ghc-mtl" ,ghc-mtl)
@@ -8670,7 +8840,8 @@ IPv4, IPv6 and MAC addresses.")
          "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs `(("ghc-hashable" ,ghc-hashable)
               ("ghc-random" ,ghc-random)
               ("ghc-text" ,ghc-text)))
@@ -8702,7 +8873,8 @@ functions.")
          "09xhk42yhxvqmka0iqrv3338asncz8cap3j0ic0ps896f2581b6z"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=HUnit")))
     (inputs `(("ghc-cryptohash-sha1" ,ghc-cryptohash-sha1)
               ("ghc-cryptohash-md5" ,ghc-cryptohash-md5)
               ("ghc-entropy" ,ghc-entropy)
@@ -8848,7 +9020,7 @@ and are often as efficient as hand-written folds.")
 (define-public ghc-mono-traversable
   (package
     (name "ghc-mono-traversable")
-    (version "1.0.2.1")
+    (version "1.0.9.0")
     (source
      (origin
        (method url-fetch)
@@ -8857,7 +9029,7 @@ and are often as efficient as hand-written folds.")
                            "mono-traversable-" version ".tar.gz"))
        (sha256
         (base32
-         "0smirpwika7d5a98h20jr9jqg41n7vqfy7k31crmn449qfig9ljf"))))
+         "0180ks0dyvpk1r20w5jw2w2n79mjnk69n9vhspaxzlyxqgim5psa"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-unordered-containers" ,ghc-unordered-containers)
               ("ghc-hashable" ,ghc-hashable)
@@ -8883,7 +9055,7 @@ data structures as non-empty.")
 (define-public ghc-conduit-combinators
   (package
     (name "ghc-conduit-combinators")
-    (version "1.1.1")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
@@ -8892,7 +9064,7 @@ data structures as non-empty.")
                            "conduit-combinators-" version ".tar.gz"))
        (sha256
         (base32
-         "0609miq03lq9visfb2dqqsxghmvgzm24pq39mqby1jnnah6yh8m0"))))
+         "1lz70vwp4y4lpsivxl0cshq7aq3968rh48r6rjvpyaj2l0bdj5wp"))))
     (build-system haskell-build-system)
     (inputs `(("ghc-conduit" ,ghc-conduit)
               ("ghc-conduit-extra" ,ghc-conduit-extra)
@@ -9677,4 +9849,178 @@ disk space usage.")
     (description "This package provides a library implementing the XDG Base Directory spec.")
     (license license:bsd-3)))
 
+(define-public ghc-errorcall-eq-instance
+  (package
+    (name "ghc-errorcall-eq-instance")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "errorcall-eq-instance/errorcall-eq-instance-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0hqw82m8bbrxy5vgdwb83bhzdx070ibqrm9rshyja7cb808ahijm"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-base-orphans" ,ghc-base-orphans)))
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
+    (home-page "http://hackage.haskell.org/package/errorcall-eq-instance")
+    (synopsis "Orphan Eq instance for ErrorCall")
+    (description
+     "Prior to @code{base-4.7.0.0} there was no @code{Eq} instance for @code{ErrorCall}.
+This package provides an orphan instance.")
+    (license license:expat)))
+
+(define-public ghc-missingh
+  (package
+    (name "ghc-missingh")
+    (version "1.4.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/MissingH/"
+                           "MissingH-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0wcvgrmav480w7nf4bl14yi0jq2yzanysxwzwas9hpb28vyjlgr8"))))
+    (build-system haskell-build-system)
+    ;; Tests require the unmaintained testpack package, which depends on the
+    ;; outdated QuickCheck version 2.7, which can no longer be built with
+    ;; recent versions of GHC and Haskell libraries.
+    (arguments '(#:tests? #f))
+    (inputs
+     `(("ghc-network" ,ghc-network)
+       ("ghc-parsec" ,ghc-parsec)
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-hunit" ,ghc-hunit)
+       ("ghc-regex-compat" ,ghc-regex-compat)
+       ("ghc-hslogger" ,ghc-hslogger)
+       ("ghc-random" ,ghc-random)
+       ("ghc-old-time" ,ghc-old-time)
+       ("ghc-old-locale" ,ghc-old-locale)))
+    (native-inputs
+     `(("ghc-errorcall-eq-instance" ,ghc-errorcall-eq-instance)
+       ("ghc-quickcheck" ,ghc-quickcheck)
+       ("ghc-hunit" ,ghc-hunit)))
+    (home-page "http://software.complete.org/missingh")
+    (synopsis "Large utility library")
+    (description
+     "MissingH is a library of all sorts of utility functions for Haskell
+programmers.  It is written in pure Haskell and thus should be extremely
+portable and easy to use.")
+    (license license:bsd-3)))
+
+(define-public ghc-intervalmap
+  (package
+    (name "ghc-intervalmap")
+    (version "0.6.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/IntervalMap/"
+                           "IntervalMap-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06hin9wf1by8aqa7820fsi2339bh82184frkwz3jsb9sqa0hszcg"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-quickcheck" ,ghc-quickcheck)))
+    (home-page "http://www.chr-breitkopf.de/comp/IntervalMap")
+    (synopsis "Containers for intervals, with efficient search")
+    (description
+     "This package provides ordered containers of intervals, with efficient
+search for all keys containing a point or overlapping an interval.  See the
+example code on the home page for a quick introduction.")
+    (license license:bsd-3)))
+
+(define-public ghc-operational
+  (package
+    (name "ghc-operational")
+    (version "0.2.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/operational/"
+                           "operational-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1x2abg2q9d26h1vzj40r6k7k3gqgappbs4g9d853vvg77837km4i"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-random" ,ghc-random)))
+    (home-page "http://wiki.haskell.org/Operational")
+    (synopsis "Implementation of difficult monads made easy with operational semantics")
+    (description
+     "This library makes it easy to implement monads with tricky control
+flow. This is useful for: writing web applications in a sequential style,
+programming games with a uniform interface for human and AI players and easy
+replay capababilities, implementing fast parser monads, designing monadic
+DSLs, etc.")
+    (license license:bsd-3)))
+
+(define-public ghc-gtk2hs-buildtools
+  (package
+    (name "ghc-gtk2hs-buildtools")
+    (version "0.13.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/"
+                           "gtk2hs-buildtools/gtk2hs-buildtools-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "0yg6xmylgpylmnh5g33qwwn5x9bqckdvvv4czqzd9vrr12lnnghg"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-random" ,ghc-random)
+       ("ghc-hashtables" ,ghc-hashtables)))
+    (native-inputs
+     `(("ghc-alex" ,ghc-alex)
+       ("ghc-happy" ,ghc-happy)))
+    (home-page "http://projects.haskell.org/gtk2hs/")
+    (synopsis "Tools to build the Gtk2Hs suite of user interface libraries")
+    (description
+     "This package provides a set of helper programs necessary to build the
+Gtk2Hs suite of libraries. These tools include a modified c2hs binding tool
+that is used to generate FFI declarations, a tool to build a type hierarchy
+that mirrors the C type hierarchy of GObjects found in glib, and a generator
+for signal declarations that are used to call back from C to Haskell. These
+tools are not needed to actually run Gtk2Hs programs.")
+    (license license:gpl2)))
+
+(define-public ghc-chart
+  (package
+    (name "ghc-chart")
+    (version "1.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hackage.haskell.org/package/Chart/"
+                           "Chart-" version ".tar.gz"))
+       (sha256
+        (base32
+         "13s64fhb2pmkdmx5bkgbgcn25qjihs364fvr47a1dw25f804kiy1"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-old-locale" ,ghc-old-locale)
+       ("ghc-mtl" ,ghc-mtl)
+       ("ghc-lens" ,ghc-lens)
+       ("ghc-colour" ,ghc-colour)
+       ("ghc-data-default-class" ,ghc-data-default-class)
+       ("ghc-operational" ,ghc-operational)
+       ("ghc-vector" ,ghc-vector)))
+    (home-page "https://github.com/timbod7/haskell-chart/wiki")
+    (synopsis "Library for generating 2D charts and plots")
+    (description
+     "This package provides a library for generating 2D charts and plots, with
+backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
+    (license license:bsd-3)))
+
 ;;; haskell.scm ends here
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index b604712c99..e50802d24f 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -340,18 +340,17 @@ official designation is ISO/IEC 29199-2). This library is an implementation of t
 (define-public jpegoptim
   (package
    (name "jpegoptim")
-   (version "1.4.5")
+   (version "1.4.6")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-"
                                 version ".tar.gz"))
             (sha256 (base32
-                     "1mngi8c4mhzwa7i4wqrqq6i80cqj4adbacblfvk6dy573wywyxmi"))))
+                     "1dss7907fclfl8zsw0bl4qcw0hhz6fqgi3867w0jyfm3q9jfpcc8"))))
    (build-system gnu-build-system)
    (inputs `(("libjpeg" ,libjpeg)))
    (arguments
-    ;; no tests
-    '(#:tests? #f))
+    '(#:tests? #f))                     ; no tests
    (synopsis "Optimize JPEG images")
    (description
     "jpegoptim provides lossless optimization (based on optimizing
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index fee335609c..84fe09b767 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -157,7 +157,7 @@ text, lines, polygons, ellipses and Bézier curves.")
             ;; so skip for now.
             (delete-file "t/mpeg/read.t")
             #t)))))
-    (home-page "http://search.cpan.org/dist/PerlMagick")
+    (home-page "https://metacpan.org/release/PerlMagick")
     (synopsis "Perl interface to ImageMagick")
     (description "This Perl extension allows the reading, manipulation and
 writing of a large number of image file formats using the ImageMagick library.
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 519a98ec7f..110f07a476 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nils Gillmann <ng0@n0.is>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -43,7 +43,7 @@
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-lingua-en-words2nums" ,perl-lingua-en-words2nums)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-FindNumber")
+    (home-page "https://metacpan.org/release/Lingua-EN-FindNumber")
     (synopsis "Locate (written) numbers in English text ")
     (description "This module provides a regular expression for finding
 numbers in English text.  It also provides functions for extracting and
@@ -64,7 +64,7 @@ manipulating such numbers.")
          "0j8d1f1wvmgc11d71pc8xp8fv5a1nb2yfw1dgd19xhscn1klpvzw"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Inflect")
+    (home-page "https://metacpan.org/release/Lingua-EN-Inflect")
     (synopsis "Convert singular to plural")
     (description "Lingua::EN::Inflect provides plural inflections,
 \"a\"/\"an\" selection for English words, and manipulation of numbers as
@@ -88,7 +88,7 @@ provided.  Where appropriate, \"classical\" variants (for example: \"brother\"
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-lingua-en-inflect" ,perl-lingua-en-inflect)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Inflect-Number")
+    (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Number")
     (synopsis "Force number of words to singular or plural")
     (description "This module extends the functionality of Lingua::EN::Inflect
 with three new functions for determining plurality of a word and forcefully
@@ -116,7 +116,7 @@ converting a word to singular or plural.")
        ("perl-lingua-en-inflect-number" ,perl-lingua-en-inflect-number)
        ("perl-lingua-en-number-isordinal" ,perl-lingua-en-number-isordinal)
        ("perl-lingua-en-tagger" ,perl-lingua-en-tagger)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Inflect-Phrase")
+    (home-page "https://metacpan.org/release/Lingua-EN-Inflect-Phrase")
     (synopsis "Inflect short English phrases")
     (description "This module attempts to pluralize or singularize short
 English phrases.")
@@ -140,7 +140,7 @@ English phrases.")
        ("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-lingua-en-findnumber" ,perl-lingua-en-findnumber)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Number-IsOrdinal")
+    (home-page "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal")
     (synopsis "Detect if English number is ordinal or cardinal")
     (description "This module will tell you if a number, either in words or as
 digits, is a cardinal or ordinal number.")
@@ -149,7 +149,7 @@ digits, is a cardinal or ordinal number.")
 (define-public perl-lingua-en-tagger
   (package
     (name "perl-lingua-en-tagger")
-    (version "0.28")
+    (version "0.29")
     (source
      (origin
        (method url-fetch)
@@ -157,14 +157,14 @@ digits, is a cardinal or ordinal number.")
                            "Lingua-EN-Tagger-" version ".tar.gz"))
        (sha256
         (base32
-         "1rm223d871s150dgnhbar71w56bim950cp45f0904w6px5fifcqa"))))
+         "0dssn101kmpkh2ik1430mj2ikk04849vbpgi60382kvh9xn795na"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-memoize-expirelru" ,perl-memoize-expirelru)
        ("perl-lingua-stem" ,perl-lingua-stem)
        ("perl-html-parser" ,perl-html-parser)
        ("perl-html-tagset" ,perl-html-tagset)))
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Tagger")
+    (home-page "https://metacpan.org/release/Lingua-EN-Tagger")
     (synopsis "Part-of-speech tagger for English natural language processing")
     (description "This module is a probability based, corpus-trained tagger
 that assigns part-of-speech tags to English text based on a lookup dictionary
@@ -189,7 +189,7 @@ using a set of regular expressions.")
         (base32
          "118xx8qr1zbx30psv7ic55w65h15mc1vz6zicshfm96jgiwmcrb8"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-EN-Words2Nums")
+    (home-page "https://metacpan.org/release/Lingua-EN-Words2Nums")
     (synopsis "Convert English text to numbers")
     (description "This module converts English text into numbers.  It supports
 both ordinal and cardinal numbers, negative numbers, and very large numbers.")
@@ -208,7 +208,7 @@ both ordinal and cardinal numbers, negative numbers, and very large numbers.")
         (base32
          "17c48sfbgwd2ivlgf59sr6jdhwa3aim8750f8pyzz7xpi8gz0var"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-PT-Stemmer")
+    (home-page "https://metacpan.org/release/Lingua-PT-Stemmer")
     (synopsis "Portuguese language stemming")
     (description "This module implements a Portuguese stemming algorithm
 proposed in the paper A Stemming Algorithm for the Portuguese Language by
@@ -239,7 +239,7 @@ Moreira, V. and Huyck, C.")
        ("perl-snowball-norwegian" ,perl-snowball-norwegian)
        ("perl-snowball-swedish" ,perl-snowball-swedish)
        ("perl-text-german" ,perl-text-german)))
-    (home-page "http://search.cpan.org/dist/Lingua-Stem")
+    (home-page "https://metacpan.org/release/Lingua-Stem")
     (synopsis "Stemming of words in various languages")
     (description "This routine applies stemming algorithms to its parameters,
 returning the stemmed words as appropriate to the selected locale.")
@@ -258,7 +258,7 @@ returning the stemmed words as appropriate to the selected locale.")
         (base32
          "0vyrspwzaqjxm5mqshf4wvwa3938mkajd1918d9ii2l9m2rn8kwx"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-Stem-Fr")
+    (home-page "https://metacpan.org/release/Lingua-Stem-Fr")
     (synopsis "Porter's stemming algorithm for French")
     (description "This module uses a modified version of the Porter Stemming
 Algorithm to return a stemmed French word.")
@@ -277,7 +277,7 @@ Algorithm to return a stemmed French word.")
         (base32
          "1207r183s5hlh4mfwa6p46vzm0dhvrs2dnss5s41a0gyfkxp7riq"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-Stem-It")
+    (home-page "https://metacpan.org/release/Lingua-Stem-It")
     (synopsis "Porter's stemming algorithm for Italian")
     (description "This module applies the Porter Stemming Algorithm to its
 parameters, returning the stemmed Italian word.")
@@ -296,7 +296,7 @@ parameters, returning the stemmed Italian word.")
         (base32
          "0a2jmdz7jn32qj5hyiw5kbv8fvlpmws8i00a6xcbkzb48yvwww0j"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-Stem-Ru")
+    (home-page "https://metacpan.org/release/Lingua-Stem-Ru")
     (synopsis "Porter's stemming algorithm for Russian")
     (description "This module applies the Porter Stemming Algorithm to its
 parameters, returning the stemmed Russian (KOI8-R only) word.")
@@ -315,7 +315,7 @@ parameters, returning the stemmed Russian (KOI8-R only) word.")
         (base32
          "0mm0m7glm1s6i9f6a78jslw6wh573208arxhq93yriqmw17bwf9f"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-Stem-Snowball-Da")
+    (home-page "https://metacpan.org/release/Lingua-Stem-Snowball-Da")
     (synopsis "Porters stemming algorithm for Danish")
     (description "Lingua::Stem::Snowball::Da is a perl port of the danish
 stemmer at http://snowball.sourceforge.net, it was originally altered from the
@@ -336,7 +336,7 @@ Lingua::Stem::Snowball::Se.")
          "0675v45bbsh7vr7kpf36xs2q79g02iq1kmfw22h20xdk4rzqvkqx"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Snowball-Norwegian")
+    (home-page "https://metacpan.org/release/Snowball-Norwegian")
     (synopsis "Porters stemming algorithm for Norwegian")
     (description "Lingua::Stem::Snowball::No is a perl port of the norwegian
 stemmer at http://snowball.tartarus.org.")
@@ -356,7 +356,7 @@ stemmer at http://snowball.tartarus.org.")
          "0agwc12jk5kmabnpsplw3wf4ii5w1zb159cpin44x3srb0sr5apg"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Snowball-Swedish")
+    (home-page "https://metacpan.org/release/Snowball-Swedish")
     (synopsis "Porters stemming algorithm for Swedish")
     (description "Lingua::Stem::Snowball::Se is a perl port of the swedish
 stemmer at http://snowball.sourceforge.net.")
@@ -379,7 +379,7 @@ stemmer at http://snowball.sourceforge.net.")
      `(("perl-lingua-en-inflect-phrase" ,perl-lingua-en-inflect-phrase)
        ("perl-text-unidecode" ,perl-text-unidecode)
        ("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/String-ToIdentifier-EN")
+    (home-page "https://metacpan.org/release/String-ToIdentifier-EN")
     (synopsis "Convert strings to English program identifiers")
     (description "This module provides a utility method, \"to_identifier\" for
 converting an arbitrary string into a readable representation using the ASCII
@@ -401,7 +401,7 @@ string can be easily inferred by a human just by reading the identifier.")
         (base32
          "1p87pgap99lw0nv62i3ghvsi7yg90lhn8vsa3yqp75rd04clybcj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-German")
+    (home-page "https://metacpan.org/release/Text-German")
     (synopsis "German grundform reduction")
     (description "This module is a rather incomplete implementation of work
 done by Gudrun Putze-Meier.")
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index 983c8625e4..a7752dc5f0 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -180,7 +181,7 @@ resolution, asynchronous file system operations, and threading primitives.")
        ("perl-json-xs" ,perl-json-xs)
        ("perl-net-ssleay" ,perl-net-ssleay)
        ("perl-task-weaken" ,perl-task-weaken)))
-    (home-page "http://search.cpan.org/dist/AnyEvent")
+    (home-page "https://metacpan.org/release/AnyEvent")
     (synopsis
      "API for I/O, timer, signal, child process and completion events")
     (description
@@ -218,14 +219,14 @@ not rely on XS.")
            ;; to build. Unpack system libev here...
            (lambda* (#:key inputs #:allow-other-keys)
              (mkdir "./libev")
-             (zero? (system* "tar" "-xf" (assoc-ref inputs "libev-source")
-                             "-C" "./libev" "--strip-components=1")))))))
+             (invoke "tar" "-xf" (assoc-ref inputs "libev-source")
+                     "-C" "./libev" "--strip-components=1"))))))
     (native-inputs
      `(("libev-source" ,(package-source libev))
        ("perl-canary-stability" ,perl-canary-stability)))
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
-    (home-page "http://search.cpan.org/dist/EV")
+    (home-page "https://metacpan.org/release/EV")
     (synopsis "Perl interface to libev")
     (description
      "This module provides an interface to @code{libev}, a high performance
diff --git a/gnu/packages/license.scm b/gnu/packages/license.scm
index 053f79811e..44c7a1bb2a 100644
--- a/gnu/packages/license.scm
+++ b/gnu/packages/license.scm
@@ -33,7 +33,7 @@
 (define-public perl-regexp-pattern-license
   (package
     (name "perl-regexp-pattern-license")
-    (version "3.1.0")
+    (version "3.1.92")
     (source
      (origin
        (method url-fetch)
@@ -42,14 +42,15 @@
              "v" version ".tar.gz"))
        (sha256
         (base32
-         "1479ismcgq1mx712yhw0qswb4z75spc81f9k621vfpkji0smpyk2"))))
+         "0gxv8wpvlllmvhkpixv5x23ywn1s6zs7ypcs38s7nfh4phamyixh"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-regexp-pattern" ,perl-regexp-pattern)
        ("perl-test-exception" ,perl-test-exception)))
     (propagated-inputs
-     `(("perl-strictures" ,perl-strictures-2)))
-    (home-page "http://search.cpan.org/dist/Regexp-Pattern-License/")
+     `(("perl-strictures" ,perl-strictures-2)
+       ("perl-try-tiny" ,perl-try-tiny)))
+    (home-page "https://metacpan.org/release/Regexp-Pattern-License")
     (synopsis "Regular expressions for legal licenses")
     (description "Regexp::Pattern::License provides a hash of regular
 expression patterns related to legal software licenses.
@@ -75,7 +76,7 @@ Regexp::Pattern is a convention for organizing reusable regex patterns.")
      `(("perl-number-range" ,perl-number-range)))
     (propagated-inputs
      `(("perl-exporter-tiny" ,perl-exporter-tiny)))
-    (home-page "http://search.cpan.org/dist/String-Copyright/")
+    (home-page "https://metacpan.org/release/String-Copyright")
     (synopsis "Representation of text-based copyright statements")
     (description "String::Copyright Parses common styles of copyright
 statements and serializes in normalized format.")
@@ -100,7 +101,7 @@ statements and serializes in normalized format.")
     (propagated-inputs
      `(("perl-data-section" ,perl-data-section)
        ("perl-text-template" ,perl-text-template)))
-    (home-page "http://search.cpan.org/dist/Software-License/")
+    (home-page "https://metacpan.org/release/Software-License")
     (synopsis "Templated software licenses")
     (description "This package provides templated software licenses.")
     (license (package-license perl))))
@@ -108,7 +109,7 @@ statements and serializes in normalized format.")
 (define-public licensecheck
   (package
     (name "licensecheck")
-    (version "3.0.34")
+    (version "3.0.36")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -116,7 +117,7 @@ statements and serializes in normalized format.")
                     "v" version ".tar.gz"))
               (sha256
                (base32
-                "0k0acybgibdqg1h6xqnba1jb0spmw7hpq0jbrs7n7gfj22wkz0vd"))))
+                "0y14ppq6f9hc0rc0syhfgms1r7fd51vpgfx5va6b2v84y8anb6g1"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-regexp-pattern" ,perl-regexp-pattern)
@@ -153,7 +154,7 @@ statements and serializes in normalized format.")
                  `("PERL5LIB" ":"
                    prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
                #t))))))
-    (home-page "http://search.cpan.org/dist/App-Licensecheck/")
+    (home-page "https://metacpan.org/release/App-Licensecheck")
     (synopsis "License checker for source files")
     (description "Licensecheck attempts to determine the license that applies
 to each file passed to it, by searching the start of the file for text
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
index c78d3fe462..b91f5c8834 100644
--- a/gnu/packages/lighting.scm
+++ b/gnu/packages/lighting.scm
@@ -37,7 +37,7 @@
 (define-public ola
   (package
     (name "ola")
-    (version "0.10.6")
+    (version "0.10.7")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -46,7 +46,7 @@
               (patches (search-patches "ola-readdir-r.patch"))
               (sha256
                (base32
-                "1w1s4bz0va0ay46qjqd7rlkp3ksx2kqbzsjr3ra71hrla4mk1a16"))))
+                "181imc9qkjm2m1iwrb5ixsckx893nc6qwjfzacsjlqp0jlnj8rca"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1ad86a7895..464b7a8427 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.")
 ;; supports qemu "virt" machine and possibly a large number of ARM boards.
 ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
 
-(define %linux-libre-version "4.17.13")
-(define %linux-libre-hash "07z4yisl4krz1ja6123xp32g00nx6ajsc9x1lywmmpvvjilsz4ax")
+(define %linux-libre-version "4.17.14")
+(define %linux-libre-hash "11yf4s3cq6a9z3sl38kr4li75mhqfnmgwayi1mcaac8hr6ylksss")
 
 (define-public linux-libre
   (make-linux-libre %linux-libre-version
@@ -413,8 +413,8 @@ It has been modified to remove all non-free binary blobs.")
                     %linux-compatible-systems
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.61")
-(define %linux-libre-4.14-hash "0jr0qi3473fn32cyisp3baf68sfr6vir5ydaphmqmz379ymxxm0z")
+(define %linux-libre-4.14-version "4.14.62")
+(define %linux-libre-4.14-hash "0gpcdimig6d833dgxmj1i21dg8n12g4q38n0dq5j5x215w6rxy65")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -423,14 +423,14 @@ 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.118"
-                    "0zh9l0r828jjbmmqp0hwkjm34ly8kqhfddlyigmliz0j39dg0137"
+  (make-linux-libre "4.9.119"
+                    "1wqy9163w9srf614p57c3m7h8a2lbwv7f21m4cym397paqfkh4z4"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.146"
-                    "1gpshdkn2rfg8kkf2qb2z30yk1lgzndk0fn1bvnrmfmx7swc45w8"
+  (make-linux-libre "4.4.147"
+                    "0b9pr7qwa5ksj0bk5yh6hcxrjkv41ji0x29hscravmj4ckkxg0l6"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
@@ -1199,7 +1199,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
 (define-public iproute
   (package
     (name "iproute2")
-    (version "4.17.0")
+    (version "4.18.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1207,7 +1207,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
                     version ".tar.xz"))
               (sha256
                (base32
-                "0vmynikcamfhakvwyk5dsffy0ymgi5mdqiwybdvqfn1ijaq93abg"))))
+                "0ida5njr9nacg6ym3rjvl3cc9czw0hn4akhzbqf8f4zmjl6cgrm9"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                                ; no test suite
@@ -2725,14 +2725,14 @@ about ACPI devices.")
 (define-public acpid
   (package
     (name "acpid")
-    (version "2.0.28")
+    (version "2.0.30")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/acpid2/acpid-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "043igasvp1l6nv5rzh4sksmymay2qn20anl4zm4zvwnkn1a3l34q"))))
+                "1jzl7hiaspr5xkmsrbl69bib8cs3dp6bq5ix58fbskpnsdi7pdr8"))))
     (build-system gnu-build-system)
     (home-page "https://sourceforge.net/projects/acpid2/")
     (synopsis "Daemon for delivering ACPI events to user-space programs")
@@ -4092,7 +4092,7 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
 (define-public light
   (package
     (name "light")
-    (version "1.1")
+    (version "1.1.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4100,7 +4100,7 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
                     (commit version)))
               (sha256
                (base32
-                "1qra8yzsga29bxlvq63v1db071a1xdji7i60p4kzrciidm1206js"))))
+                "0c934gxav9cgdf94li6dp0rfqmpday9d33vdn9xb2mfp4war9n4w"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 5e5933932b..32483eaa6d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -546,7 +546,7 @@ repository and Maildir/IMAP as LOCAL repository.")
     (version "6.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://mew.org/Release/mew-"
+              (uri (string-append "https://mew.org/Release/mew-"
                                   version ".tar.gz"))
               (sha256
                (base32
@@ -584,7 +584,7 @@ repository and Maildir/IMAP as LOCAL repository.")
                 "mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
                #t)))
          #:tests? #f)))
-    (home-page "http://www.mew.org")
+    (home-page "https://mew.org")
     (synopsis "Emacs e-mail client")
     (description "Mew (Messaging in the Emacs World) is a user interface
 for text messages, multimedia messages (MIME), news articles and
@@ -1399,7 +1399,7 @@ mailboxes.  Currently Maildir and IMAP are supported types.")
      `(("perl-email-simple" ,perl-email-simple)
        ("perl-module-pluggable" ,perl-module-pluggable)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Email-Abstract")
+    (home-page "https://metacpan.org/release/Email-Abstract")
     (synopsis "Interface to mail representations")
     (description "Email::Abstract provides module writers with the ability to
 write simple, representation-independent mail handling code.")
@@ -1418,7 +1418,7 @@ write simple, representation-independent mail handling code.")
         (base32
          "0l7x6sl06j9ffgfz5f9vgms2b5axd4cgp5fj03ivb3kia4km6b3g"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-Address")
+    (home-page "https://metacpan.org/release/Email-Address")
     (synopsis "Email address parsing and creation")
     (description "Email::Address implements a regex-based RFC 2822 parser that
 locates email addresses in strings and returns a list of Email::Address
@@ -1438,7 +1438,7 @@ objects found.  Alternatively you may construct objects manually.")
         (base32
          "012ivfwpnbl3wr50f9c6f4azhdlxnm31pdn72528g79v61z6372p"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-Date-Format")
+    (home-page "https://metacpan.org/release/Email-Date-Format")
     (synopsis "Produce RFC 2822 date strings")
     (description "Email::Date::Format provides a means for generating an RFC
 2822 compliant datetime string.")
@@ -1457,7 +1457,7 @@ objects found.  Alternatively you may construct objects manually.")
         (base32
          "1f22sdnfq169qw1l0lg7y74pmiam7j9v95bggjnf3q4mygdmshpc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-MessageID")
+    (home-page "https://metacpan.org/release/Email-MessageID")
     (synopsis "Generate world unique message-ids")
     (description "Email::MessageID generates recommended message-ids to
 identify a message uniquely.")
@@ -1484,7 +1484,7 @@ identify a message uniquely.")
        ("perl-email-simple" ,perl-email-simple)
        ("perl-mime-types" ,perl-mime-types)
        ("perl-module-runtime" ,perl-module-runtime)))
-    (home-page "http://search.cpan.org/dist/Email-MIME")
+    (home-page "https://metacpan.org/release/Email-MIME")
     (synopsis "MIME message handling")
     (description "Email::MIME is an extension of the Email::Simple module, to
 handle MIME encoded messages.  It takes a message as a string, splits it up
@@ -1507,7 +1507,7 @@ message.  Headers are decoded from MIME encoding.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-MIME-ContentType")
+    (home-page "https://metacpan.org/release/Email-MIME-ContentType")
     (synopsis "Parse MIME Content-Type headers")
     (description "Email::MIME::ContentType parses a MIME Content-Type
 header.")
@@ -1528,7 +1528,7 @@ header.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-MIME-Encodings")
+    (home-page "https://metacpan.org/release/Email-MIME-Encodings")
     (synopsis "Unified interface to MIME encoding and decoding")
     (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
     (license perl-license)))
@@ -1559,7 +1559,7 @@ header.")
        ("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-throwable" ,perl-throwable)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-Sender")
+    (home-page "https://metacpan.org/release/Email-Sender")
     (synopsis "Perl library for sending email")
     (description "Email::Sender replaces the old and sometimes problematic
 Email::Send library.")
@@ -1568,7 +1568,7 @@ Email::Send library.")
 (define-public perl-email-simple
   (package
     (name "perl-email-simple")
-    (version "2.214")
+    (version "2.216")
     (source
      (origin
        (method url-fetch)
@@ -1576,11 +1576,11 @@ Email::Send library.")
                            "Email-Simple-" version ".tar.gz"))
        (sha256
         (base32
-         "14kb86hi0m0bqc7kxpm4x5kvfsyj2x86gggbvpxhx9hy8hvjpw5j"))))
+         "1m4brbjvalyp5kjqslqv4155dzwg977shxin208i7lc8236n6pyq"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-email-date-format" ,perl-email-date-format)))
-    (home-page "http://search.cpan.org/dist/Email-Simple")
+    (home-page "https://metacpan.org/release/Email-Simple")
     (synopsis "Parsing of RFC 2822 messages")
     (description "Email::Simple provides simple parsing of RFC 2822 message
 format and headers.")
@@ -1802,7 +1802,7 @@ Khard can also be used from within the email client @command{mutt}.")
       ("perl-netaddr-ip" ,perl-netaddr-ip)
       ("perl-uri" ,perl-uri)))
   (home-page
-    "http://search.cpan.org/dist/Mail-SPF")
+    "https://metacpan.org/release/Mail-SPF")
   (synopsis
     "Perl implementation of Sender Policy Framework")
   (description "Mail::SPF is the Sender Policy Framework implemented
@@ -1857,24 +1857,22 @@ converts them to maildir format directories.")
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.2.6")
+    (version "1.2.8")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/mpop/mpop/" version
-                           "/mpop-" version ".tar.xz"))
+       (uri (string-append "https://marlam.de/mpop/releases/"
+                           name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0p1ix63jh64dibrlccch8q7gxl9nn18wd2qpyr5z1h4gs2fpmv4z"))))
+         "1skrda7lbks5h0v03ab8bhpg6ma1b63if8x9x3kb2fv70x2pkhqn"))))
     (build-system gnu-build-system)
     (inputs
      `(("gnutls" ,gnutls)
        ("libidn" ,libidn)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (arguments
-     `(#:configure-flags (list "--with-tls=gnutls")))
-    (home-page "http://mpop.sourceforge.net/")
+    (home-page "https://marlam.de/mpop/")
     (synopsis "POP3 mail client")
     (description "mpop is a small and fast POP3 client suitable as a
 fetchmail replacement.
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index e15e8497b7..cdcfbc7898 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -109,16 +109,15 @@ convert it to structurally valid XHTML (or HTML).")
 (define-public discount
   (package
     (name "discount")
-    (version "2.2.2")
+    (version "2.2.4")
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "http://www.pell.portland.or.us/~orc/Code/"
                    name "/" name "-" version ".tar.bz2"))
-             (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
-               "0r4gjyk1ngx47zhb25q0gkjm3bz2m5x8ngrk6rim3y1y3rricygc"))))
+               "199hwajpspqil0a4y3yxsmhdp2dm73gqkzfk4mrwzsmlq8y1xzbl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -144,7 +143,7 @@ convert it to structurally valid XHTML (or HTML).")
     (description
      "Discount is a markdown implementation, written in C.  It provides a
 @command{markdown} command, and a library.")
-    (home-page "http://www.pell.portland.or.us/~orc/Code/discount/")
+    (home-page "https://www.pell.portland.or.us/~orc/Code/discount/")
     (license bsd-3)))
 
 (define-public perl-text-markdown-discount
@@ -178,7 +177,7 @@ convert it to structurally valid XHTML (or HTML).")
     (inputs
      `(("discount" ,discount)))
     (home-page
-     "http://search.cpan.org/dist/Text-Markdown-Discount")
+     "https://metacpan.org/release/Text-Markdown-Discount")
     (synopsis
      "Fast function for converting Markdown to HTML using Discount")
     (description
diff --git a/gnu/packages/marst.scm b/gnu/packages/marst.scm
index 9b4db8be63..92a32eba6c 100644
--- a/gnu/packages/marst.scm
+++ b/gnu/packages/marst.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 50de120e07..793693f31a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -167,14 +167,14 @@ interactive dialogs to guide them.")
 (define-public coda
   (package
     (name "coda")
-    (version "2.18.3")
+    (version "2.19")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/stcorp/coda/releases/download/"
                            version "/coda-" version ".tar.gz"))
        (sha256
-        (base32 "1zlzgcvwmmjm8mw8w4rg2rqy0pjilz7kyyxm0y4p8cbljbbjxxz0"))
+        (base32 "1fbxd2afm7dshd92p10yy8dwbr9gc1h1fmnnnmr7d0c5lnw80245"))
        (patches (search-patches "coda-use-system-libs.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -353,17 +353,17 @@ numbers.")
 (define-public ocaml-gsl
   (package
     (name "ocaml-gsl")
-    (version "1.19.3")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append
-         "https://github.com/mmottl/gsl-ocaml/releases/download/v"
-         version"/gsl-ocaml-" version ".tar.gz"))
+         "https://github.com/mmottl/gsl-ocaml/releases/download/"
+         version "/gsl-" version ".tbz"))
        (sha256
         (base32
-         "0nzp43hp8pbjqkrxnwp5lgjrabxayf61h18fjaydi0s5faq6f3xh"))))
+         "17vcswipliq1b2idbzx1z95kskn1a4q4s5v04igilg0f7lnkaarb"))))
     (build-system ocaml-build-system)
     (inputs
      `(("gsl" ,gsl)))
@@ -2767,16 +2767,16 @@ full text searching.")
 (define-public armadillo
   (package
     (name "armadillo")
-    (version "7.800.2")
+    (version "9.100.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/arma/armadillo-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1qqzy7dp891j9v7062mv1599hdwr97vqzrd3j2fl8c3gmc00dmzg"))))
+                "1pzvarfj4mf6xmhs6r8dxlgq6h994ajr8hsp09r4w0dw99za2r08"))))
     (build-system cmake-build-system)
-    (arguments `(#:tests? #f)) ;no test target
+    (arguments `(#:tests? #f))          ; no test target
     (inputs
      `(("openblas" ,openblas)
        ("lapack" ,lapack)
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 22aef058f4..579127d06e 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -470,13 +470,13 @@ compression format (.mpc files).")
 (define-public eyed3
   (package
     (name "eyed3")
-    (version "0.8.5")
+    (version "0.8.7")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "eyeD3" version))
              (sha256
               (base32
-               "0rkx859z82wqnfb0dzpa1647cq43aqb39ri9rd5r3jz597qr9zdd"))))
+               "1fzqy6hkg73xvpapdjrdzr3r0fsamnplvjfl7dz7rzgzx2r4x4pg"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f)) ; the required test data contains copyrighted material.
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index c5ee4293ba..599a1d8943 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
@@ -238,7 +238,8 @@ score, keyboard, guitar, drum and controller views.")
                       "tinysvcmdns"))
                     #t))
                 (patches (search-patches "clementine-use-openssl.patch"
-                                         "clementine-remove-crypto++-dependency.patch"))))
+                                         "clementine-remove-crypto++-dependency.patch"
+                                         "clementine-fix-sqlite.patch"))))
       (build-system cmake-build-system)
       (arguments
        '(#:test-target "clementine_test"
@@ -271,6 +272,8 @@ score, keyboard, guitar, drum and controller views.")
          ("glu" ,glu)
          ("gstreamer" ,gstreamer)
          ("gst-plugins-base" ,gst-plugins-base)
+         ("gst-plugins-good" ,gst-plugins-good)
+         ("gst-libav" ,gst-libav)
          ("libcdio" ,libcdio)
          ("libmygpo-qt" ,libmygpo-qt)
          ;; TODO: Package libgpod.
@@ -281,8 +284,7 @@ score, keyboard, guitar, drum and controller views.")
          ("pulseaudio" ,pulseaudio)
          ("qtbase" ,qtbase)
          ("qtx11extras" ,qtx11extras)
-         ("qtwebkit" ,qtwebkit)
-         ("sqlite" ,sqlite-with-fts3)
+         ("sqlite" ,sqlite)
          ("sparsehash" ,sparsehash)
          ("taglib" ,taglib)))
       (home-page "http://clementine-player.org")
@@ -4220,3 +4222,39 @@ discard.
 discard bad quality ones.
 @end itemize\n")
       (license license:expat))))
+
+(define-public lpd8editor
+  (package
+    (name "lpd8editor")
+    (version "0.0.12")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/charlesfleche/lpd8editor.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1v3fz8h1zs7kkl80faah79pp6yqwz0j7bkv3dbmh2hp42zbfiz1q"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'setenv
+           (lambda _
+             (setenv "INSTALL_PREFIX"
+                     (assoc-ref %outputs "out"))))
+         (delete 'configure) ; no configure script
+         (add-before 'build 'qmake
+           (lambda _ (invoke "qmake"))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa" ,alsa-lib)
+       ("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (synopsis "Graphical editor for the Akai LPD8 MIDI controller")
+    (description "lpd8editor is a graphical patch editor for the Akai LPD8 MIDI
+controller.")
+    (home-page "https://github.com/charlesfleche/lpd8editor")
+    (license license:expat)))
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 2f628a6fe9..2051f1dd9d 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -229,7 +229,7 @@ ncursesw library provides wide character support.")
 (define-public dialog
   (package
     (name "dialog")
-    (version "1.3-20171209")
+    (version "1.3-20180621")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -237,10 +237,10 @@ ncursesw library provides wide character support.")
                     version ".tgz"))
               (sha256
                (base32
-                "1rk72as52f5br3wcr74d00wib41w65g8wvi36mfgybly251984r0"))))
+                "0yjqczlf64yppgvk4i6s0jm06mdr0mb5m6sj39nf891dnbi5jj2a"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f)) ; no test suite
+     `(#:tests? #f))                    ; no test suite
     (inputs
      `(("ncurses" ,ncurses)))
     (synopsis "Curses widgets")
@@ -285,7 +285,7 @@ curses widgets, such as dialog boxes.")
                (setenv "CURSES_MENU_LDFLAGS" (string-append "-L" lib " -lmenu"))
                (setenv "CURSES_FORM_LDFLAGS" (string-append "-L" lib " -lform"))
                #t))))))
-    (home-page "http://search.cpan.org/dist/Curses")
+    (home-page "https://metacpan.org/release/Curses")
     (synopsis "Terminal screen handling and optimization")
     (description
      "@code{Curses} is the interface between Perl and the curses library
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 937d6f75ba..371a93566a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -407,14 +408,14 @@ receiving NDP messages.")
 (define-public ethtool
   (package
     (name "ethtool")
-    (version "4.16")
+    (version "4.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/software/network/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "00ss07jc7p276d83f6jpafgwyc9yiribciyqcgx9j86v49kpm5py"))))
+                "11f5503mgcwjn1q4dvhjiqwnw3zmp2gbhirjvgfr71y72ys1wsy4"))))
     (build-system gnu-build-system)
     (home-page "https://www.kernel.org/pub/software/network/ethtool/")
     (synopsis "Display or change Ethernet device settings")
@@ -815,24 +816,53 @@ 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-data-validate-ip
+  (package
+    (name "perl-data-validate-ip")
+    (version "0.27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "1mmppyzsh1w2z2h86kvzqxy56wxgs62a3kf8nvcnz76bblir5ap1"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-requires" ,perl-test-requires)))
+    (propagated-inputs
+     `(("perl-netaddr-ip" ,perl-netaddr-ip)))
+    (home-page "https://metacpan.org/release/Data-Validate-IP")
+    (synopsis "IPv4 and IPv6 validation methods")
+    (description
+     "This module provides several IP address validation subroutines that both
+validate and untaint their input.  This includes both basic validation
+(@code{is_ipv4()} and @code{is_ipv6()}) and special cases like checking whether
+an address belongs to a specific network or whether an address is public or
+private (reserved).")
+    (license license:perl-license)))
+
 (define-public perl-net-dns
  (package
   (name "perl-net-dns")
-  (version "1.15")
+  (version "1.17")
   (source
     (origin
       (method url-fetch)
-      (uri (string-append
-             "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
-             version
-             ".tar.gz"))
+      (uri
+       (list
+        (string-append "https://www.net-dns.org/download/Net-DNS-"
+                       version ".tar.gz")
+        (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
+                       version ".tar.gz")))
       (sha256
         (base32
-          "1l31kqrgjzq8zgpr86z12x550px5zpn563gmnja6m14b8fk6pm0s"))))
+          "1q62w9rf2w8kjzqagzr0rdn20ybl8gj3l6cdq4k8fw0sxa7zsycs"))))
   (build-system perl-build-system)
   (inputs
     `(("perl-digest-hmac" ,perl-digest-hmac)))
-  (home-page "http://search.cpan.org/dist/Net-DNS")
+  (home-page "https://www.net-dns.org/")
   (synopsis
     "Perl Interface to the Domain Name System")
   (description "Net::DNS is the Perl Interface to the Domain Name System.")
@@ -864,7 +894,7 @@ allows for heavy scripting.")
                             "INSTALLDIRS=site")))
                (setenv "CONFIG_SHELL" (which "sh"))
                (zero? (apply system* "perl" args))))))))
-  (home-page "http://search.cpan.org/dist/Socket6")
+  (home-page "https://metacpan.org/release/Socket6")
   (synopsis
     "IPv6 related part of the C socket.h defines and structure manipulators for Perl")
   (description "Socket6 binds the IPv6 related part of the C socket header
@@ -891,7 +921,7 @@ definitions and structure manipulators for Perl.")
     `(("perl-module-build" ,perl-module-build)))
   (inputs `(("perl-net-dns" ,perl-net-dns)))
   (home-page
-    "http://search.cpan.org/dist/Net-DNS-Resolver-Programmable")
+    "https://metacpan.org/release/Net-DNS-Resolver-Programmable")
   (synopsis
     "Programmable DNS resolver class for offline emulation of DNS")
   (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
@@ -925,7 +955,7 @@ offline emulation of DNS.")
                (setenv "CONFIG_SHELL" (which "sh"))
                (zero? (apply system* "perl" args))))))))
   (home-page
-    "http://search.cpan.org/dist/NetAddr-IP")
+    "https://metacpan.org/release/NetAddr-IP")
   (synopsis
     "Manages IPv4 and IPv6 addresses and subnets")
   (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
@@ -950,7 +980,7 @@ offline emulation of DNS.")
     `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
       ("perl-socket6" ,perl-socket6)))
   (home-page
-    "http://search.cpan.org/dist/Net-Patricia")
+    "https://metacpan.org/release/Net-Patricia")
   (synopsis
     "Patricia Trie Perl module for fast IP address lookups")
   (description
@@ -975,7 +1005,7 @@ offline emulation of DNS.")
           "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
   (build-system perl-build-system)
   (home-page
-    "http://search.cpan.org/dist/Net-CIDR-Lite")
+    "https://metacpan.org/release/Net-CIDR-Lite")
   (synopsis
     "Perl extension for merging IPv4 or IPv6 CIDR addresses")
   (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
@@ -998,7 +1028,7 @@ offline emulation of DNS.")
         (base32
           "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
   (build-system perl-build-system)
-  (home-page "http://search.cpan.org/dist/Geo-IP")
+  (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
@@ -1028,7 +1058,7 @@ information by IP Address.")
   (arguments `(;; Need network socket API
                #:tests? #f))
   (home-page
-    "http://search.cpan.org/dist/IO-Socket-INET6")
+    "https://metacpan.org/release/IO-Socket-INET6")
   (synopsis
     "Perl object interface for AF_INET/AF_INET6 domain sockets")
   (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
@@ -1070,19 +1100,18 @@ libproxy only have to specify which proxy to use.")
 (define-public proxychains-ng
   (package
     (name "proxychains-ng")
-    (version "4.12")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/rofl0r/" name "/releases/"
-                                  "download/v" version "/" name "-" version
-                                  ".tar.xz"))
-              (sha256
-               (base32
-                "0kiss3ih6cwayzvqi5cx4kw4vh7r2kfxlbgk56v1f1066ncm8aj8"))))
+    (version "4.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0418fv8hgf43rzrxxlybg49jz2h6w8inndhb6v1184k4cwzjnl3p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; there are no tests
-       #:make-flags '("CC=gcc")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-configure-script
@@ -1093,6 +1122,10 @@ libproxy only have to specify which proxy to use.")
                (("\\*\\) break ;;" line)
                 (string-append "[A-Z]*) shift ;;\n"
                                line)))
+             #t))
+         (add-before 'configure 'set-up-environment
+           (lambda _
+             (setenv "CC" "gcc")
              #t)))))
     (synopsis "Redirect any TCP connection through a proxy or proxy chain")
     (description "Proxychains-ng is a preloader which hooks calls to sockets
@@ -1685,14 +1718,14 @@ displays the results in real time.")
 (define-public strongswan
   (package
     (name "strongswan")
-    (version "5.6.2")
+    (version "5.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.strongswan.org/strongswan-"
                            version ".tar.bz2"))
        (sha256
-        (base32 "14ifqay54brw2b2hbmm517bxw8bs9631d7jm4g139igkxcq0m9p0"))))
+        (base32 "095zg7h7qwsc456sqgwb1lhhk29ac3mk5z9gm6xja1pl061driy3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1895,23 +1928,16 @@ eight bytes) tools
 (define-public asio
   (package
     (name "asio")
-    (version "1.12.0")
+    (version "1.12.1")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/chriskohlhoff/asio.git")
-             (commit (string-join (cons name (string-split version #\.))
-                                  "-"))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/asio/asio/"
+                           version " (Stable)/" name "-" version ".tar.bz2"))
        (sha256
         (base32
-         "04dg8kpgriay7q62mqcq2gl439k5y4mf761zghsd6wfl0farh3mx"))))
+         "0nln45662kg799ykvqx5m9z9qcsmadmgg6r5najryls7x16in2d9"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
     (inputs
      `(("boost" ,boost)
        ("openssl" ,openssl)))
@@ -1919,15 +1945,7 @@ eight bytes) tools
      `(#:configure-flags
        (list
         (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))
-        (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl")))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'chdir-to-asio
-           (lambda _
-             (chdir "asio")))
-         (add-before 'configure 'bootstrap
-           (lambda _
-             (invoke "sh" "autogen.sh"))))))
+        (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl")))))
     (home-page "https://think-async.com/Asio")
     (synopsis "C++ library for ASynchronous network I/O")
     (description "Asio is a cross-platform C++ library for network and
@@ -2079,3 +2097,83 @@ SNMP v3 using both IPv4 and IPv6.")
 between various technologies.  Currently, bridging between UDP tunnels,
 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:"
+                                    (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
+packets from wireless devices for use with hashcat or John the Ripper.")
+      (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,
+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))))
diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm
index d952f412e2..12964e302a 100644
--- a/gnu/packages/openldap.scm
+++ b/gnu/packages/openldap.scm
@@ -22,21 +22,35 @@
 
 (define-module (gnu packages openldap)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages databases)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
+  #: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 pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages rsync)
+  #:use-module (gnu packages selinux)
+  #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages)
-  #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+))
+  #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl))
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python))
 
 (define-public openldap
   (package
@@ -138,3 +152,183 @@ get from @file{/etc} flat files or NIS.  It also provides a @dfn{Pluggable
 Authentication Module} (PAM) to do identity and authentication management with
 an LDAP server.")
     (license lgpl2.1+)))
+
+(define-public python-ldap
+  (package
+    (name "python-ldap")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python-ldap" version))
+       (sha256
+        (base32
+         "1i97nwfnraylyn0myxlf3vciicrf5h6fymrcff9c00k581wmx5s1"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure-openldap-locations
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((openldap (assoc-ref inputs "openldap")))
+               (setenv "SLAPD"
+                       (string-append openldap
+                                      "/libexec/slapd"))
+               (setenv "SCHEMA"
+                       (string-append openldap
+                                      "/etc/openldap/schema/")))
+             #t)))))
+    (inputs
+     `(("openldap" ,openldap)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("mit-krb5" ,mit-krb5)))
+    (propagated-inputs
+     `(("python-pyasn1" ,python-pyasn1)
+       ("python-pyasn1-modules" ,python-pyasn1-modules)))
+    (home-page "https://www.python-ldap.org/")
+    (synopsis "Python modules for implementing LDAP clients")
+    (description
+     "This package provides an object-oriented API to access LDAP directory
+servers from Python programs.")
+    (license psfl)))
+
+(define-public 389-ds-base
+  (package
+    (name "389-ds-base")
+    (version "1.4.0.13")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://releases.pagure.org/389-ds-base/"
+                                  "389-ds-base-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "01dm3zq3w5ami9pwcjbjz8wfbx9krjxybjrgc4wyhrxlzd90ylzj"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((srfi srfi-1)
+                  (guix build gnu-build-system)
+                  (guix build utils))
+       #:configure-flags
+       (list (string-append "--with-db="
+                            (assoc-ref %build-inputs "bdb"))
+             (string-append "--with-sasl="
+                            (assoc-ref %build-inputs "cyrus-sasl"))
+             (string-append "--with-netsnmp="
+                            (assoc-ref %build-inputs "net-snmp"))
+             (string-append "--with-pcre="
+                            (assoc-ref %build-inputs "pcre"))
+             (string-append "--with-selinux="
+                            (assoc-ref %build-inputs "libselinux"))
+             ;; The Perl scripts are being removed in the 1.4.0 release.
+             ;; Building them would require packaging of the outdated Mozilla
+             ;; LDAP SDK (instead of OpenLDAP) and PerLDAP.
+             "--disable-perl")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-install-location-of-python-tools
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (get-python-version
+                     ;; FIXME: copied from python-build-system
+                     (lambda (python)
+                       (let* ((version     (last (string-split python #\-)))
+                              (components  (string-split version #\.))
+                              (major+minor (take components 2)))
+                         (string-join major+minor "."))))
+                    (pythondir (string-append
+                                out "/lib/python"
+                                (get-python-version (assoc-ref inputs "python"))
+                                "/site-packages/")))
+               ;; Install directory must be on PYTHONPATH.
+               (setenv "PYTHONPATH"
+                       (string-append (getenv "PYTHONPATH")
+                                      ":" pythondir))
+               ;; Install directory must exist.
+               (mkdir-p pythondir)
+               (substitute* "src/lib389/setup.py"
+                 (("/usr") out))
+               (substitute* "Makefile.am"
+                 (("setup.py install --skip-build" m)
+                  (string-append m " --prefix=" out
+                                 " --root=/ --single-version-externally-managed"))))
+             #t))
+         (add-after 'build 'build-python-tools
+           (lambda* (#:key make-flags #:allow-other-keys)
+             ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc
+             ;; files.
+             (setenv "DETERMINISTIC_BUILD" "1")
+             ;; Use deterministic hashes for strings, bytes, and datetime
+             ;; objects.
+             (setenv "PYTHONHASHSEED" "0")
+             (apply invoke "make" "lib389" make-flags)
+             #t))
+         (add-after 'install 'install-python-tools
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "make" "lib389-install" make-flags)
+             #t))
+         (add-after 'install-python-tools 'wrap-python-tools
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (path (getenv "PYTHONPATH")))
+               (for-each (lambda (file)
+                           (wrap-program (string-append out file)
+                             `("PYTHONPATH" ":" prefix (,path))))
+                         '("/sbin/dsconf"
+                           "/sbin/dscreate"
+                           "/sbin/dsctl"
+                           "/sbin/dsidm"
+                           "/bin/ds-logpipe.py"
+                           "/bin/ds-replcheck"
+                           "/bin/readnsstate")))
+             #t)))))
+    (inputs
+     `(("bdb" ,bdb)
+       ("cyrus-sasl" ,cyrus-sasl)
+       ("gnutls" ,gnutls)
+       ("httpd" ,httpd)
+       ("icu4c" ,icu4c)
+       ("libevent" ,libevent)
+       ("libselinux" ,libselinux)
+       ("linux-pam" ,linux-pam)
+       ("mit-krb5" ,mit-krb5)
+       ("net-snmp" ,net-snmp)
+       ("nspr" ,nspr)
+       ("nss" ,nss)
+       ("openldap" ,openldap)
+       ("pcre" ,pcre)
+       ("perl" ,perl)
+       ("python" ,python)
+       ("python-pyasn1" ,python-pyasn1)
+       ("python-pyasn1-modules" ,python-pyasn1-modules)
+       ("python-pytest" ,python-pytest)
+       ("python-dateutil" ,python-dateutil)
+       ("python-six" ,python-six)
+       ("python-argcomplete" ,python-argcomplete)
+       ("python-argparse-manpage" ,python-argparse-manpage)
+       ("python-ldap" ,python-ldap)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("doxygen" ,doxygen)
+       ("gettext" ,gettext-minimal)
+       ("libtool" ,libtool)
+       ("rsync" ,rsync)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://directory.fedoraproject.org")
+    (synopsis "Enterprise-class LDAP server")
+    (description "389ds is an enterprise-class LDAP server.  It is hardened by
+real-world use, is full-featured, and supports multi-master replication.
+
+Other features include:
+
+@enumerate
+@item Online, zero downtime, LDAP-based update of schema, configuration, and
+  management including @dfn{Access Control Information} (ACIs);
+@item Asynchronous Multi-Master Replication, to provide fault tolerance and
+  high write performance;
+@item Extensive documentation;
+@item Secure authentication and transport (TLS, and SASL);
+@item LDAPv3 compliant server.
+@end enumerate\n")
+    ;; GPLv3+ with OpenSSL linking exception.
+    (license gpl3+)))
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 9ac30420b7..06b2873dd2 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,8 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages opencl)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
@@ -358,7 +361,7 @@ any X11 window.")
 (define-public password-store
   (package
     (name "password-store")
-    (version "1.7.2")
+    (version "1.7.3")
     (source (origin
               (method url-fetch)
               (uri
@@ -366,7 +369,7 @@ any X11 window.")
                               name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1sl0d7nc85c6c2bmmmyb8rpmn47vhkj831l153mjlkawjvhwas27"))))
+                "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -383,9 +386,9 @@ any X11 window.")
              #t))
          (add-after 'install 'install-passmenu
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (copy-file "contrib/dmenu/passmenu"
-                          (string-append out "/bin/passmenu"))
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "contrib/dmenu/passmenu" bin)
                #t)))
          (add-after 'install 'wrap-path
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -422,7 +425,7 @@ any X11 window.")
        ("which" ,which)
        ("xclip" ,xclip)
        ("xdotool" ,xdotool)))
-    (home-page "http://www.passwordstore.org/")
+    (home-page "https://www.passwordstore.org/")
     (synopsis "Encrypted password manager")
     (description "Password-store is a password manager which uses GnuPG to
 store and retrieve passwords.  The tool stores each password in its own
@@ -697,3 +700,84 @@ rotating passwords on various web services.  It makes it easier to rotate your
 passwords, one at a time or in bulk, when security events or routine upkeep of
 your online accounts makes it necessary.")
     (license license:expat)))
+
+(define-public hashcat
+  (package
+    (name "hashcat")
+    (version "4.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://hashcat.net/files/hashcat-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "170i2y32ykgzb1qf1wz3klwn31c09bviz4x3bnrwia65adqrj8xx"))))
+    (native-inputs
+     `(("opencl-headers" ,opencl-headers)))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                      ;no tests
+       #:make-flags (list (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://hashcat.net/hashcat/")
+    (synopsis "Advanced password recovery utility")
+    (description "Hashcat is an password recovery utility, supporting five
+unique modes of attack for over 200 highly-optimized hashing algorithms.
+Hashcat currently supports CPUs, GPUs, and other hardware accelerators on
+Linux, Windows, and macOS, and has facilities to help enable distributed
+password cracking.")
+    (license license:expat)))
+
+(define-public hashcat-utils
+  (package
+    (name "hashcat-utils")
+    (version "1.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/hashcat/hashcat-utils/releases/download/v"
+                           version "/hashcat-utils-1.8.7z"))
+       (sha256
+        (base32
+         "1x80rngjz7gkhwplhw1iqr0wzb6hjkrjfld2kz9kmgp5dr9nys1p"))))
+    (native-inputs
+     `(("p7zip" ,p7zip)))
+    (inputs
+     `(("perl" ,perl)))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:make-flags (list "CC=gcc"
+                          ;; Upstream bug(?): "make all" seems to remove the
+                          ;; Perl scripts from the source.
+                          "native")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (invoke "7z" "x" source)
+             (chdir (string-append "hashcat-utils-" ,version "/src"))
+             #t))
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p out)
+               (for-each (lambda (file)
+                           (copy-file file (string-append out "/" (basename file ".bin"))))
+                         (find-files "." "\\.bin$"))
+               (for-each (lambda (file)
+                           (copy-file file (string-append out "/" (basename file ".pl"))))
+                         (find-files "../bin" "\\.pl$"))
+               #t))))))
+    (home-page "https://github.com/hashcat/hashcat-utils/")
+    (synopsis "Small utilities that are useful in advanced password cracking")
+    (description "Hashcat-utils are a set of small utilities that are useful
+in advanced password cracking.  They all are packed into multiple stand-alone
+binaries.  All of these utils are designed to execute only one specific
+function.  Since they all work with @code{STDIN} and @code{STDOUT} you can
+group them into chains.")
+    (license license:expat)))
diff --git a/gnu/packages/patches/aegisub-icu59-include-unistr.patch b/gnu/packages/patches/aegisub-icu59-include-unistr.patch
new file mode 100644
index 0000000000..78414741be
--- /dev/null
+++ b/gnu/packages/patches/aegisub-icu59-include-unistr.patch
@@ -0,0 +1,12 @@
+This patch adds an include needed since icu59:
+Source: https://git.archlinux.org/svntogit/community.git/plain/trunk/icu59.patch?h=packages/aegisub
+--- aegisub-3.2.2/src/utils.cpp	2014-12-08 02:07:09.000000000 +0200
++++ aegisub-3.2.2/src/utils.cpp	2017-04-26 11:11:15.438239182 +0300
+@@ -44,6 +44,7 @@
+ #include <boost/filesystem/path.hpp>
+ #include <map>
+ #include <unicode/locid.h>
++#include <unicode/unistr.h>
+ #include <wx/clipbrd.h>
+ #include <wx/filedlg.h>
+ #include <wx/stdpaths.h>
diff --git a/gnu/packages/patches/clementine-fix-sqlite.patch b/gnu/packages/patches/clementine-fix-sqlite.patch
new file mode 100644
index 0000000000..f9d44f9074
--- /dev/null
+++ b/gnu/packages/patches/clementine-fix-sqlite.patch
@@ -0,0 +1,23 @@
+Patch downloaded from https://github.com/clementine-player/Clementine/pull/5669 .
+
+diff -ruN clementine-1.3.1.565.gd20c2244a.orig/src/core/database.cpp clementine-1.3.1.565.gd20c2244a/src/core/database.cpp
+--- clementine-1.3.1.565.gd20c2244a.orig/src/core/database.cpp	2018-07-07 23:59:24.018540126 +0200
++++ clementine-1.3.1.565.gd20c2244a/src/core/database.cpp	2018-07-08 00:04:47.991551728 +0200
+@@ -265,6 +265,17 @@
+   StaticInit();
+ 
+   {
++
++#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
++    // In case sqlite>=3.12 is compiled without -DSQLITE_ENABLE_FTS3_TOKENIZER
++    // (generally a good idea  due to security reasons) the fts3 support should be enabled explicitly.
++    QVariant v = db.driver()->handle();
++    if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
++      sqlite3 *handle = *static_cast<sqlite3**>(v.data());
++      if (handle) sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, NULL);
++    }
++#endif
++
+     QSqlQuery set_fts_tokenizer(db);
+     set_fts_tokenizer.prepare("SELECT fts3_tokenizer(:name, :pointer)");
+     set_fts_tokenizer.bindValue(":name", "unicode");
diff --git a/gnu/packages/patches/gdm-CVE-2018-14424.patch b/gnu/packages/patches/gdm-CVE-2018-14424.patch
new file mode 100644
index 0000000000..88a71f4151
--- /dev/null
+++ b/gnu/packages/patches/gdm-CVE-2018-14424.patch
@@ -0,0 +1,172 @@
+Fix CVE-2018-14424:
+
+https://gitlab.gnome.org/GNOME/gdm/issues/401
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14424
+
+Patch copied from upstream source repository:
+
+https://gitlab.gnome.org/GNOME/gdm/commit/1ac1697b3b019f50729a6e992065959586e170da
+
+From 1ac1697b3b019f50729a6e992065959586e170da Mon Sep 17 00:00:00 2001
+From: Chris Coulson <chris.coulson@canonical.com>
+Date: Thu, 19 Jul 2018 18:26:05 +0100
+Subject: [PATCH] display-store: Pass the display object rather than the id in
+ the removed signal
+
+By the time GdmDisplayStore emits the "display-removed" signal, the display
+is no longer in the store and gdm_display_store_lookup will not work in
+signal handlers.
+
+Change the "display-removed" parameter from the display id to the GdmDisplay
+object, so that signal handers can perform any cleanup they need to do
+
+CVE-2018-14424
+
+Closes: https://gitlab.gnome.org/GNOME/gdm/issues/401
+---
+ daemon/gdm-display-store.c         | 11 +++--------
+ daemon/gdm-display-store.h         |  2 +-
+ daemon/gdm-local-display-factory.c | 13 +++----------
+ daemon/gdm-manager.c               | 19 +++++++++----------
+ daemon/gdm-manager.h               |  3 ++-
+ 5 files changed, 18 insertions(+), 30 deletions(-)
+
+diff --git a/daemon/gdm-display-store.c b/daemon/gdm-display-store.c
+index af76f519..fd24334e 100644
+--- a/daemon/gdm-display-store.c
++++ b/daemon/gdm-display-store.c
+@@ -76,15 +76,10 @@ stored_display_new (GdmDisplayStore *store,
+ static void
+ stored_display_free (StoredDisplay *stored_display)
+ {
+-        char *id;
+-
+-        gdm_display_get_id (stored_display->display, &id, NULL);
+-
+         g_signal_emit (G_OBJECT (stored_display->store),
+                        signals[DISPLAY_REMOVED],
+                        0,
+-                       id);
+-        g_free (id);
++                       stored_display->display);
+ 
+         g_debug ("GdmDisplayStore: Unreffing display: %p",
+                  stored_display->display);
+@@ -281,9 +276,9 @@ gdm_display_store_class_init (GdmDisplayStoreClass *klass)
+                               G_STRUCT_OFFSET (GdmDisplayStoreClass, display_removed),
+                               NULL,
+                               NULL,
+-                              g_cclosure_marshal_VOID__STRING,
++                              g_cclosure_marshal_VOID__OBJECT,
+                               G_TYPE_NONE,
+-                              1, G_TYPE_STRING);
++                              1, G_TYPE_OBJECT);
+ 
+         g_type_class_add_private (klass, sizeof (GdmDisplayStorePrivate));
+ }
+diff --git a/daemon/gdm-display-store.h b/daemon/gdm-display-store.h
+index 28359933..0aff8ee2 100644
+--- a/daemon/gdm-display-store.h
++++ b/daemon/gdm-display-store.h
+@@ -49,7 +49,7 @@ typedef struct
+         void          (* display_added)    (GdmDisplayStore *display_store,
+                                             const char      *id);
+         void          (* display_removed)  (GdmDisplayStore *display_store,
+-                                            const char      *id);
++                                            GdmDisplay      *display);
+ } GdmDisplayStoreClass;
+ 
+ typedef enum
+diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
+index 5f1ae89e..39f3e30a 100644
+--- a/daemon/gdm-local-display-factory.c
++++ b/daemon/gdm-local-display-factory.c
+@@ -805,18 +805,11 @@ on_display_added (GdmDisplayStore        *display_store,
+ 
+ static void
+ on_display_removed (GdmDisplayStore        *display_store,
+-                    const char             *id,
++                    GdmDisplay             *display,
+                     GdmLocalDisplayFactory *factory)
+ {
+-        GdmDisplay *display;
+-
+-        display = gdm_display_store_lookup (display_store, id);
+-
+-        if (display != NULL) {
+-                g_signal_handlers_disconnect_by_func (display, G_CALLBACK (on_display_status_changed), factory);
+-                g_object_weak_unref (G_OBJECT (display), (GWeakNotify)on_display_disposed, factory);
+-
+-        }
++        g_signal_handlers_disconnect_by_func (display, G_CALLBACK (on_display_status_changed), factory);
++        g_object_weak_unref (G_OBJECT (display), (GWeakNotify)on_display_disposed, factory);
+ }
+ 
+ static gboolean
+diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
+index f17bd1a5..f6684a8b 100644
+--- a/daemon/gdm-manager.c
++++ b/daemon/gdm-manager.c
+@@ -1541,19 +1541,18 @@ on_display_status_changed (GdmDisplay *display,
+ 
+ static void
+ on_display_removed (GdmDisplayStore *display_store,
+-                    const char      *id,
++                    GdmDisplay      *display,
+                     GdmManager      *manager)
+ {
+-        GdmDisplay *display;
++        char    *id;
+ 
+-        display = gdm_display_store_lookup (display_store, id);
+-        if (display != NULL) {
+-                g_dbus_object_manager_server_unexport (manager->priv->object_manager, id);
++        gdm_display_get_id (display, &id, NULL);
++        g_dbus_object_manager_server_unexport (manager->priv->object_manager, id);
++        g_free (id);
+ 
+-                g_signal_handlers_disconnect_by_func (display, G_CALLBACK (on_display_status_changed), manager);
++        g_signal_handlers_disconnect_by_func (display, G_CALLBACK (on_display_status_changed), manager);
+ 
+-                g_signal_emit (manager, signals[DISPLAY_REMOVED], 0, id);
+-        }
++        g_signal_emit (manager, signals[DISPLAY_REMOVED], 0, display);
+ }
+ 
+ static void
+@@ -2535,9 +2534,9 @@ gdm_manager_class_init (GdmManagerClass *klass)
+                               G_STRUCT_OFFSET (GdmManagerClass, display_removed),
+                               NULL,
+                               NULL,
+-                              g_cclosure_marshal_VOID__STRING,
++                              g_cclosure_marshal_VOID__OBJECT,
+                               G_TYPE_NONE,
+-                              1, G_TYPE_STRING);
++                              1, G_TYPE_OBJECT);
+ 
+         g_object_class_install_property (object_class,
+                                          PROP_XDMCP_ENABLED,
+diff --git a/daemon/gdm-manager.h b/daemon/gdm-manager.h
+index 41c68a7a..c8fb3f22 100644
+--- a/daemon/gdm-manager.h
++++ b/daemon/gdm-manager.h
+@@ -24,6 +24,7 @@
+ 
+ #include <glib-object.h>
+ 
++#include "gdm-display.h"
+ #include "gdm-manager-glue.h"
+ 
+ G_BEGIN_DECLS
+@@ -50,7 +51,7 @@ typedef struct
+         void          (* display_added)    (GdmManager      *manager,
+                                             const char      *id);
+         void          (* display_removed)  (GdmManager      *manager,
+-                                            const char      *id);
++                                            GdmDisplay      *display);
+ } GdmManagerClass;
+ 
+ typedef enum
+-- 
+2.17.1
+
diff --git a/gnu/packages/patches/openssl-1.1.0-CVE-2018-0495.patch b/gnu/packages/patches/openssl-1.1.0-CVE-2018-0495.patch
deleted file mode 100644
index 15dedbcbd0..0000000000
--- a/gnu/packages/patches/openssl-1.1.0-CVE-2018-0495.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-Fix CVE-2018-0495:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-0495
-https://www.nccgroup.trust/us/our-research/technical-advisory-return-of-the-hidden-number-problem/
-
-Patch copied from upstream source repository:
-
-https://github.com/openssl/openssl/commit/0c27d793745c7837b13646302b6890a556b7017a
-
-From 0c27d793745c7837b13646302b6890a556b7017a Mon Sep 17 00:00:00 2001
-From: Matt Caswell <matt@openssl.org>
-Date: Fri, 25 May 2018 12:10:13 +0100
-Subject: [PATCH] Add blinding to an ECDSA signature
-
-Keegan Ryan (NCC Group) has demonstrated a side channel attack on an
-ECDSA signature operation. During signing the signer calculates:
-
-s:= k^-1 * (m + r * priv_key) mod order
-
-The addition operation above provides a sufficient signal for a
-flush+reload attack to derive the private key given sufficient signature
-operations.
-
-As a mitigation (based on a suggestion from Keegan) we add blinding to
-the operation so that:
-
-s := k^-1 * blind^-1 (blind * m + blind * r * priv_key) mod order
-
-Since this attack is a localhost side channel only no CVE is assigned.
-
-Reviewed-by: Rich Salz <rsalz@openssl.org>
----
- CHANGES                |  4 +++
- crypto/ec/ecdsa_ossl.c | 70 +++++++++++++++++++++++++++++++++++++-----
- 2 files changed, 67 insertions(+), 7 deletions(-)
-
-diff --git a/crypto/ec/ecdsa_ossl.c b/crypto/ec/ecdsa_ossl.c
-index 72e2f0f28b..449be0e92a 100644
---- a/crypto/ec/ecdsa_ossl.c
-+++ b/crypto/ec/ecdsa_ossl.c
-@@ -210,7 +210,8 @@ ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
-                                EC_KEY *eckey)
- {
-     int ok = 0, i;
--    BIGNUM *kinv = NULL, *s, *m = NULL, *tmp = NULL;
-+    BIGNUM *kinv = NULL, *s, *m = NULL, *tmp = NULL, *blind = NULL;
-+    BIGNUM *blindm = NULL;
-     const BIGNUM *order, *ckinv;
-     BN_CTX *ctx = NULL;
-     const EC_GROUP *group;
-@@ -243,8 +244,18 @@ ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
-     }
-     s = ret->s;
- 
--    if ((ctx = BN_CTX_new()) == NULL ||
--        (tmp = BN_new()) == NULL || (m = BN_new()) == NULL) {
-+    ctx = BN_CTX_secure_new();
-+    if (ctx == NULL) {
-+        ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_MALLOC_FAILURE);
-+        goto err;
-+    }
-+
-+    BN_CTX_start(ctx);
-+    tmp = BN_CTX_get(ctx);
-+    m = BN_CTX_get(ctx);
-+    blind = BN_CTX_get(ctx);
-+    blindm = BN_CTX_get(ctx);
-+    if (blindm == NULL) {
-         ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_MALLOC_FAILURE);
-         goto err;
-     }
-@@ -284,18 +295,64 @@ ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
-             }
-         }
- 
--        if (!BN_mod_mul(tmp, priv_key, ret->r, order, ctx)) {
-+        /*
-+         * The normal signature calculation is:
-+         *
-+         *   s := k^-1 * (m + r * priv_key) mod order
-+         *
-+         * We will blind this to protect against side channel attacks
-+         *
-+         *   s := k^-1 * blind^-1 * (blind * m + blind * r * priv_key) mod order
-+         */
-+
-+        /* Generate a blinding value */
-+        do {
-+            if (!BN_rand(blind, BN_num_bits(order) - 1, BN_RAND_TOP_ANY,
-+                         BN_RAND_BOTTOM_ANY))
-+                goto err;
-+        } while (BN_is_zero(blind));
-+        BN_set_flags(blind, BN_FLG_CONSTTIME);
-+        BN_set_flags(blindm, BN_FLG_CONSTTIME);
-+        BN_set_flags(tmp, BN_FLG_CONSTTIME);
-+
-+        /* tmp := blind * priv_key * r mod order */
-+        if (!BN_mod_mul(tmp, blind, priv_key, order, ctx)) {
-             ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-             goto err;
-         }
--        if (!BN_mod_add_quick(s, tmp, m, order)) {
-+        if (!BN_mod_mul(tmp, tmp, ret->r, order, ctx)) {
-             ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-             goto err;
-         }
-+
-+        /* blindm := blind * m mod order */
-+        if (!BN_mod_mul(blindm, blind, m, order, ctx)) {
-+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-+            goto err;
-+        }
-+
-+        /* s : = (blind * priv_key * r) + (blind * m) mod order */
-+        if (!BN_mod_add_quick(s, tmp, blindm, order)) {
-+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-+            goto err;
-+        }
-+
-+        /* s:= s * blind^-1 mod order */
-+        if (BN_mod_inverse(blind, blind, order, ctx) == NULL) {
-+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-+            goto err;
-+        }
-+        if (!BN_mod_mul(s, s, blind, order, ctx)) {
-+            ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-+            goto err;
-+        }
-+
-+        /* s := s * k^-1 mod order */
-         if (!BN_mod_mul(s, s, ckinv, order, ctx)) {
-             ECerr(EC_F_OSSL_ECDSA_SIGN_SIG, ERR_R_BN_LIB);
-             goto err;
-         }
-+
-         if (BN_is_zero(s)) {
-             /*
-              * if kinv and r have been supplied by the caller don't to
-@@ -317,9 +374,8 @@ ECDSA_SIG *ossl_ecdsa_sign_sig(const unsigned char *dgst, int dgst_len,
-         ECDSA_SIG_free(ret);
-         ret = NULL;
-     }
-+    BN_CTX_end(ctx);
-     BN_CTX_free(ctx);
--    BN_clear_free(m);
--    BN_clear_free(tmp);
-     BN_clear_free(kinv);
-     return ret;
- }
--- 
-2.17.1
-
diff --git a/gnu/packages/patches/openssl-1.1.0-CVE-2018-0732.patch b/gnu/packages/patches/openssl-1.1.0-CVE-2018-0732.patch
deleted file mode 100644
index dfea6e7d06..0000000000
--- a/gnu/packages/patches/openssl-1.1.0-CVE-2018-0732.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Fix CVE-2018-0732:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-0732
-
-Patch copied from upstream source repository:
-
-https://github.com/openssl/openssl/commit/ea7abeeabf92b7aca160bdd0208636d4da69f4f4
-
-From ea7abeeabf92b7aca160bdd0208636d4da69f4f4 Mon Sep 17 00:00:00 2001
-From: Guido Vranken <guidovranken@gmail.com>
-Date: Mon, 11 Jun 2018 19:38:54 +0200
-Subject: [PATCH] Reject excessively large primes in DH key generation.
-
-CVE-2018-0732
-
-Signed-off-by: Guido Vranken <guidovranken@gmail.com>
-
-(cherry picked from commit 91f7361f47b082ae61ffe1a7b17bb2adf213c7fe)
-
-Reviewed-by: Tim Hudson <tjh@openssl.org>
-Reviewed-by: Matt Caswell <matt@openssl.org>
-(Merged from https://github.com/openssl/openssl/pull/6457)
----
- crypto/dh/dh_key.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c
-index fce9ff47f3..58003d7087 100644
---- a/crypto/dh/dh_key.c
-+++ b/crypto/dh/dh_key.c
-@@ -78,10 +78,15 @@ static int generate_key(DH *dh)
-     int ok = 0;
-     int generate_new_key = 0;
-     unsigned l;
--    BN_CTX *ctx;
-+    BN_CTX *ctx = NULL;
-     BN_MONT_CTX *mont = NULL;
-     BIGNUM *pub_key = NULL, *priv_key = NULL;
- 
-+    if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS) {
-+        DHerr(DH_F_GENERATE_KEY, DH_R_MODULUS_TOO_LARGE);
-+        return 0;
-+    }
-+
-     ctx = BN_CTX_new();
-     if (ctx == NULL)
-         goto err;
--- 
-2.17.1
-
diff --git a/gnu/packages/patches/qemu-CVE-2018-11806.patch b/gnu/packages/patches/qemu-CVE-2018-11806.patch
deleted file mode 100644
index f021dfa747..0000000000
--- a/gnu/packages/patches/qemu-CVE-2018-11806.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-Fix CVE-2018-11806:
-
-https://lists.gnu.org/archive/html/qemu-devel/2018-06/msg01012.html
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-11806
-
-Patch copied from upstream source repository:
-
-https://git.qemu.org/?p=qemu.git;a=commitdiff;h=864036e251f54c99d31df124aad7f34f01f5344c
-
-From 864036e251f54c99d31df124aad7f34f01f5344c Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Tue, 5 Jun 2018 23:38:35 +0530
-Subject: [PATCH] slirp: correct size computation while concatenating mbuf
-
-While reassembling incoming fragmented datagrams, 'm_cat' routine
-extends the 'mbuf' buffer, if it has insufficient room. It computes
-a wrong buffer size, which leads to overwriting adjacent heap buffer
-area. Correct this size computation in m_cat.
-
-Reported-by: ZDI Disclosures <zdi-disclosures@trendmicro.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
----
- slirp/mbuf.c | 11 +++++------
- slirp/mbuf.h |  8 +++-----
- 2 files changed, 8 insertions(+), 11 deletions(-)
-
-diff --git a/slirp/mbuf.c b/slirp/mbuf.c
-index 5ff24559fd..18cbf759a7 100644
---- a/slirp/mbuf.c
-+++ b/slirp/mbuf.c
-@@ -138,7 +138,7 @@ m_cat(struct mbuf *m, struct mbuf *n)
- 	 * If there's no room, realloc
- 	 */
- 	if (M_FREEROOM(m) < n->m_len)
--		m_inc(m,m->m_size+MINCSIZE);
-+		m_inc(m, m->m_len + n->m_len);
- 
- 	memcpy(m->m_data+m->m_len, n->m_data, n->m_len);
- 	m->m_len += n->m_len;
-@@ -147,7 +147,7 @@ m_cat(struct mbuf *m, struct mbuf *n)
- }
- 
- 
--/* make m size bytes large */
-+/* make m 'size' bytes large from m_data */
- void
- m_inc(struct mbuf *m, int size)
- {
-@@ -158,12 +158,12 @@ m_inc(struct mbuf *m, int size)
- 
-         if (m->m_flags & M_EXT) {
- 	  datasize = m->m_data - m->m_ext;
--          m->m_ext = g_realloc(m->m_ext, size);
-+	  m->m_ext = g_realloc(m->m_ext, size + datasize);
- 	  m->m_data = m->m_ext + datasize;
-         } else {
- 	  char *dat;
- 	  datasize = m->m_data - m->m_dat;
--          dat = g_malloc(size);
-+	  dat = g_malloc(size + datasize);
- 	  memcpy(dat, m->m_dat, m->m_size);
- 
- 	  m->m_ext = dat;
-@@ -171,8 +171,7 @@ m_inc(struct mbuf *m, int size)
- 	  m->m_flags |= M_EXT;
-         }
- 
--        m->m_size = size;
--
-+        m->m_size = size + datasize;
- }
- 
- 
-diff --git a/slirp/mbuf.h b/slirp/mbuf.h
-index 893601ff9d..33b84485d6 100644
---- a/slirp/mbuf.h
-+++ b/slirp/mbuf.h
-@@ -33,8 +33,6 @@
- #ifndef MBUF_H
- #define MBUF_H
- 
--#define MINCSIZE 4096	/* Amount to increase mbuf if too small */
--
- /*
-  * Macros for type conversion
-  * mtod(m,t) -	convert mbuf pointer to data pointer of correct type
-@@ -72,11 +70,11 @@ struct mbuf {
- 	struct	mbuf *m_prevpkt;	/* Flags aren't used in the output queue */
- 	int	m_flags;		/* Misc flags */
- 
--	int	m_size;			/* Size of data */
-+	int	m_size;			/* Size of mbuf, from m_dat or m_ext */
- 	struct	socket *m_so;
- 
--	caddr_t	m_data;			/* Location of data */
--	int	m_len;			/* Amount of data in this mbuf */
-+	caddr_t	m_data;			/* Current location of data */
-+	int	m_len;			/* Amount of data in this mbuf, from m_data */
- 
- 	Slirp *slirp;
- 	bool	resolution_requested;
--- 
-2.17.1
-
diff --git a/gnu/packages/patches/racket-store-checksum-override.patch b/gnu/packages/patches/racket-store-checksum-override.patch
new file mode 100644
index 0000000000..b22facca0d
--- /dev/null
+++ b/gnu/packages/patches/racket-store-checksum-override.patch
@@ -0,0 +1,42 @@
+Racket uses checksums to test if it needs to recompile its source
+files to bytecode.  If Racket is updated by grafting, the source and
+bytecode files get updated, but the checksum stays the same.  Since
+the checksum no longer matches the source file, Racket tries to
+regenerate the bytecode and write it to the store, causing errors
+because the store is immutable.  This patch makes Racket ignore
+checksums for files in the store.
+
+See <https://debbugs.gnu.org/30680> for details.
+
+diff -ruN racket-6.12/collects/compiler/cm.rkt racket-6.12-patched/collects/compiler/cm.rkt
+--- racket-6.12/collects/compiler/cm.rkt	1969-12-31 19:00:00.000000000 -0500
++++ racket-6.12-patched/collects/compiler/cm.rkt	2018-08-12 06:36:46.061142149 -0400
+@@ -7,6 +7,7 @@
+          racket/list
+          racket/path
+          racket/promise
++         racket/string
+          openssl/sha1
+          racket/place
+          setup/collects
+@@ -627,6 +628,10 @@
+       #f
+       (list src-hash recorded-hash)))
+ 
++(define (store-reference? path)
++  (let ([store-prefix (or (getenv "NIX_STORE") "/gnu/store")])
++    (string-prefix? (path->string path) store-prefix)))
++
+ (define (rkt->ss p)
+   (if (path-has-extension? p #".rkt")
+       (path-replace-extension p #".ss")
+@@ -679,7 +684,8 @@
+               (trace-printf "newer src... ~a > ~a" path-time path-zo-time)
+               ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:
+               (maybe-compile-zo sha1-only? deps path->mode roots path orig-path read-src-syntax up-to-date collection-cache new-seen)]
+-             [(different-source-sha1-and-dep-recorded path deps)
++             [(and (not (store-reference? path))
++                   (different-source-sha1-and-dep-recorded path deps))
+               => (lambda (difference)
+                    (trace-printf "different src hash... ~a" difference)
+                    ;; If `sha1-only?', then `maybe-compile-zo' returns a #f or thunk:
diff --git a/gnu/packages/patches/translate-shell-fix-curl-tests.patch b/gnu/packages/patches/translate-shell-fix-curl-tests.patch
deleted file mode 100644
index 33731462b8..0000000000
--- a/gnu/packages/patches/translate-shell-fix-curl-tests.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-This patch fixes Curl related tests for 'translate-shell'.
-
-Upstream bug URL:
-
-https://github.com/soimort/translate-shell/issues/221
-
-From bb9f32d3145125ba664b6b05bf0a2fd34108e9d2 Mon Sep 17 00:00:00 2001
-From: Mort Yao <soi@mort.ninja>
-Date: Sun, 25 Mar 2018 03:14:33 +0200
-Subject: [PATCH] TestUtils: perform curl-related tests only if NETWORK_ACCESS
- is set to yes (#221)
-
----
- test/TestUtils.awk | 32 +++++++++++++++++---------------
- 1 file changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/test/TestUtils.awk b/test/TestUtils.awk
-index 08bb2e9..1c141e5 100644
---- a/test/TestUtils.awk
-+++ b/test/TestUtils.awk
-@@ -30,22 +30,24 @@ BEGIN {
-         assertTrue(newerVersion("2", "1.9.9999"))
-     }
- 
--    T("curl()", 1)
--    {
--        delete tokens; delete ast
--        tokenize(tokens, curl("https://httpbin.org/get"))
--        parseJson(ast, tokens)
--        assertEqual(unparameterize(ast[0 SUBSEP "url"]),
--                    "https://httpbin.org/get")
--    }
-+    if (yn(ENVIRON["NETWORK_ACCESS"])) { # if network access enabled
-+        T("curl()", 1)
-+        {
-+            delete tokens; delete ast
-+            tokenize(tokens, curl("https://httpbin.org/get"))
-+            parseJson(ast, tokens)
-+            assertEqual(unparameterize(ast[0 SUBSEP "url"]),
-+                        "https://httpbin.org/get")
-+        }
- 
--    T("curlPost()", 1)
--    {
--        delete tokens; delete ast
--        tokenize(tokens, curlPost("https://httpbin.org/post", "fizz=buzz"))
--        parseJson(ast, tokens)
--        assertEqual(unparameterize(ast[0 SUBSEP "url"]),
--                    "https://httpbin.org/post")
-+        T("curlPost()", 1)
-+        {
-+            delete tokens; delete ast
-+            tokenize(tokens, curlPost("https://httpbin.org/post", "fizz=buzz"))
-+            parseJson(ast, tokens)
-+            assertEqual(unparameterize(ast[0 SUBSEP "url"]),
-+                        "https://httpbin.org/post")
-+        }
-     }
- 
-     T("dump()", 3)
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 03b311da14..57a5e1c0ed 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -491,7 +491,7 @@ by using the poppler rendering engine.")
 (define-public zathura
   (package
     (name "zathura")
-    (version "0.3.9")
+    (version "0.4.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -499,7 +499,7 @@ by using the poppler rendering engine.")
                               version ".tar.xz"))
               (sha256
                (base32
-                "0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g"))
+                "1j0yah09adv3bsjhhbqra5lambal32svk8fxmf89wwmcqrcr4qma"))
               (patches (search-patches
                         "zathura-plugindir-environment-variable.patch"))))
     (native-inputs `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 89a761f0a7..a2900c34c0 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -66,7 +66,7 @@
      `(("perl-importer" ,perl-importer)
        ("perl-term-table" ,perl-term-table)
        ("perl-sub-info" ,perl-sub-info)))
-    (home-page "http://search.cpan.org/~exodist/Test2-Suite/lib/Test2/Bundle/Extended.pm")
+    (home-page "https://metacpan.org/pod/Test2::Bundle::Extended")
     (synopsis "Full set of tools for Test2::Suite")
     (description "This package provides a rich set of tools, plugins, bundles,
 etc built upon the Test2 testing library.")
@@ -87,7 +87,7 @@ etc built upon the Test2 testing library.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-test2-bundle-extended" ,perl-test2-bundle-extended)))
-    (home-page "http://search.cpan.org/dist/Test2-Plugin-NoWarnings//")
+    (home-page "https://metacpan.org/release/Test2-Plugin-NoWarnings")
     (synopsis "Fail if tests warn")
     (description "Loading this plugin causes your tests to fail if there any
 warnings while they run.  Each warning generates a new failing test and the
@@ -113,7 +113,7 @@ warning content is outputted via diag.")
     (propagated-inputs
      `(("perl-spiffy" ,perl-spiffy)
        ("perl-test-deep" ,perl-test-deep)))
-    (home-page "http://search.cpan.org/dist/Test-Base/")
+    (home-page "https://metacpan.org/release/Test-Base")
     (synopsis "Data-driven testing framework for Perl")
     (description "Test::Base gives a way to trivially write your own test
 framework base class.  It concentrates on offering reusable data driven
@@ -141,7 +141,7 @@ patterns, so that you can write tests with a minimum of code.")
      `(("perl-module-runtime" ,perl-module-runtime)
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Test-Class/")
+    (home-page "https://metacpan.org/release/Test-Class")
     (synopsis "Easily create test classes in an xUnit/JUnit style")
     (description "@code{Test::Class} provides a simple way of creating classes
 and objects to test your code in an xUnit style.
@@ -174,7 +174,7 @@ Built using @code{Test::Builder}, it was designed to work with other
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-try-tiny" ,perl-try-tiny)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Test-Class-Most/")
+    (home-page "https://metacpan.org/release/Test-Class-Most")
     (synopsis "Test classes the easy way")
     (description "@code{Test::Class::Most} provides some more convenience when
 using @code{Test::Class}.")
@@ -207,7 +207,7 @@ using @code{Test::Class}.")
        ("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-file-find-rule" ,perl-file-find-rule)
        ("perl-file-find-rule-perl" ,perl-file-find-rule-perl)))
-    (home-page "http://search.cpan.org/dist/Test-CleanNamespaces/")
+    (home-page "https://metacpan.org/release/Test-CleanNamespaces")
     (synopsis "Check for uncleaned imports")
     (description "This module lets you check your module's namespaces for
 imported functions you might have forgotten to remove with
@@ -257,7 +257,7 @@ output and standard error of external commands.")
        ("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
     (home-page
-     "http://search.cpan.org/dist/Test-CPAN-Meta/")
+     "https://metacpan.org/release/Test-CPAN-Meta")
     (synopsis "Validate your CPAN META.yml files")
     (description
      "This module was written to ensure that a META.yml file meets the
@@ -285,7 +285,7 @@ specification.")
     (inputs
      `(("perl-json" ,perl-json)))
     (home-page
-     "http://search.cpan.org/dist/Test-CPAN-Meta-JSON/")
+     "https://metacpan.org/release/Test-CPAN-Meta-JSON")
     (synopsis "Validate your CPAN META.json files")
     (description
      "This module was written to ensure that a META.json file meets the
@@ -312,7 +312,7 @@ specification.")
 that the values match, that arrays and hashes have the same elements and that
 references are blessed into the correct class.  It also handles circular data
 structures without getting caught in an infinite loop.")
-    (home-page "http://search.cpan.org/dist/Test-Deep/")
+    (home-page "https://metacpan.org/release/Test-Deep")
     (license gpl1+)))  ; or "Artistic License"
 
 (define-public perl-test-differences
@@ -333,7 +333,7 @@ structures without getting caught in an infinite loop.")
     (propagated-inputs
      `(("perl-text-diff" ,perl-text-diff)
        ("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Test-Differences/")
+    (home-page "https://metacpan.org/release/Test-Differences")
     (synopsis "Test strings and data structures and show differences")
     (description "This module exports three test functions and four diff-style
 functions.")
@@ -355,7 +355,7 @@ functions.")
          "1ncql08cizhicbxwd753b4czns8nlcnlw0zfjcfrbdd41x4j6hqr"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/Test-Directory/")
+    (home-page "https://metacpan.org/release/Test-Directory")
     (synopsis "Perl extension for maintaining test directories")
     (description "Testing code can involve making sure that files are created
 and deleted as expected.  Doing this manually can be error prone, as it's easy
@@ -405,7 +405,7 @@ files, as well as to verify that there are no missing or unknown files.")
          "0l3bxpsw0x7j9nclizcp53mnf9wny25dmg2iglfhzgnk0xfpwzwf"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Test-EOL/")
+     "https://metacpan.org/release/Test-EOL")
     (synopsis
      "Check the correct line endings in your project")
     (description
@@ -430,7 +430,7 @@ and/or windows line endings in your perl code.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-sub-uplevel" ,perl-sub-uplevel)))
-    (home-page "http://search.cpan.org/dist/Test-Exception/")
+    (home-page "https://metacpan.org/release/Test-Exception")
     (synopsis "Test exception based code")
     (description "This module provides a few convenience methods for testing
 exception based code.  It is built with Test::Builder and plays happily with
@@ -453,7 +453,7 @@ Test::More and friends.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Test-FailWarnings/")
+    (home-page "https://metacpan.org/release/Test-FailWarnings")
     (synopsis "Add test failures if warnings are caught")
     (description
      "Test::FailWarnings adds test failures if warnings are caught.")
@@ -473,7 +473,7 @@ Test::More and friends.")
          "1c6bs68mss4q7cyapkv2c0jn66i21050p0faxf3s3417gdffzp5w"))))
     (build-system perl-build-system)
     (propagated-inputs `(("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Test-Fatal/")
+    (home-page "https://metacpan.org/release/Test-Fatal")
     (synopsis "Simple helpers for testing code with exceptions")
     (description "Test::Fatal is an alternative to the popular
 Test::Exception.  It does much less, but should allow greater flexibility in
@@ -522,7 +522,7 @@ for testing.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-path-tiny" ,perl-path-tiny)))
-    (home-page "http://search.cpan.org/dist/Test-Filename/")
+    (home-page "https://metacpan.org/release/Test-Filename")
     (synopsis "Portable filename comparison")
     (description "Test::Filename provides functions to convert all path
 separators automatically.")
@@ -546,7 +546,7 @@ separators automatically.")
     (propagated-inputs
      `(("perl-algorithm-diff" ,perl-algorithm-diff)
        ("perl-text-diff" ,perl-text-diff)))
-    (home-page "http://search.cpan.org/dist/Test-Files/")
+    (home-page "https://metacpan.org/release/Test-Files")
     (synopsis "Ease software testing with files and directories")
     (description "This library provides functions to enable testing of files
 and directories.  For instance, the @code{file_ok} helper can test whether the
@@ -578,7 +578,7 @@ contents of a file is equal to a particular string.")
                 (string-append "#!" (assoc-ref inputs "perl")
                                "/bin/perl")))
              #t)))))
-    (home-page "http://search.cpan.org/dist/Test-Harness/")
+    (home-page "https://metacpan.org/release/Test-Harness")
     (synopsis "Run Perl standard test scripts with statistics")
     (description "Simple test harness which allows tests to be run and results
 automatically aggregated and output to STDOUT.")
@@ -597,7 +597,7 @@ automatically aggregated and output to STDOUT.")
         (base32
          "00z4hcjra5nk700f3fgpy8fs036d7ry7glpn8g3wh7jzj7nrw22z"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-LeakTrace/")
+    (home-page "https://metacpan.org/release/Test-LeakTrace")
     (synopsis "Traces memory leaks in Perl")
     (description "Test::LeakTrace provides several functions that trace memory
 leaks.  This module scans arenas, the memory allocation system, so it can
@@ -617,7 +617,7 @@ detect any leaked SVs in given blocks.")
         (base32
          "0kwp7rfr1i2amz4ckigkv13ah7jr30q6l5k4wk0vxl84myg39i5b"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-LongString/")
+    (home-page "https://metacpan.org/release/Test-LongString")
     (synopsis "Tests strings for equality, with more helpful failures")
     (description "This module provides some drop-in replacements for the
 string comparison functions of Test::More, but which are more suitable when
@@ -639,7 +639,7 @@ you test against long strings.")
     (native-inputs
      `(("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/Test-Manifest/")
+    (home-page "https://metacpan.org/release/Test-Manifest")
     (synopsis "Interact with a t/test_manifest file")
     (description "@code{Test::Manifest} overrides the default test file order.  Instead of
 running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest
@@ -667,7 +667,7 @@ It constructs the right value for the build system to do the right thing.")
     (propagated-inputs
      `(("perl-devel-cycle" ,perl-devel-cycle)))
     (home-page
-     "http://search.cpan.org/dist/Test-Memory-Cycle/")
+     "https://metacpan.org/release/Test-Memory-Cycle")
     (synopsis
      "Verifies code hasn't left circular references")
     (description
@@ -702,7 +702,7 @@ memory_cycle_ok( $object );
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
     (propagated-inputs
      `(("perl-super" ,perl-super)))
-    (home-page "http://search.cpan.org/dist/Test-MockModule/")
+    (home-page "https://metacpan.org/release/Test-MockModule")
     (synopsis "Override subroutines in a module for unit testing")
     (description
      "@code{Test::MockModule} lets you temporarily redefine subroutines in other
@@ -735,7 +735,7 @@ you @code{unmock()} the subroutine.")
        ("perl-universal-can" ,perl-universal-can)
        ("perl-universal-isa" ,perl-universal-isa)))
     (arguments `(#:tests? #f))          ;TODO: tests require perl-cgi
-    (home-page "http://search.cpan.org/dist/Test-MockObject/")
+    (home-page "https://metacpan.org/release/Test-MockObject")
     (synopsis "Emulate troublesome interfaces in Perl")
     (description "Test::MockObject allows you to create objects that conform
 to particular interfaces with very little code.  You don't have to reimplement
@@ -757,7 +757,7 @@ the behavior, just the input and the output.")
     (propagated-inputs
      `(("perl-time-piece" ,perl-time-piece)))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-MockTime/")
+    (home-page "https://metacpan.org/release/Test-MockTime")
     (synopsis "Replaces actual time with simulated time")
     (description "This module was created to enable test suites to test code
 at specific points in time.  Specifically it overrides localtime, gmtime and
@@ -785,7 +785,7 @@ to gmtime,time or localtime.")
        ("perl-exception-class" ,perl-exception-class)
        ("perl-test-deep" ,perl-test-deep)
        ("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/Test-Most/")
+    (home-page "https://metacpan.org/release/Test-Most")
     (synopsis "Most commonly needed test functions and features")
     (description "This module provides the most commonly used testing
 functions, along with automatically turning on strict and warning and gives a
@@ -808,7 +808,7 @@ bit more fine-grained control over test suites.")
          "16gkgpmr9hvkz382iaqd3500269lk2d44fqaw3dsrvc66nc36kss"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Test-Needs/")
+     "https://metacpan.org/release/Test-Needs")
     (synopsis
      "Skip tests when modules not available")
     (description "@code{Test::Needs} allows you to skip test scripts if
@@ -836,7 +836,7 @@ If used in a subtest, the remainder of the subtest will be skipped.")
          "0c306p9qdpa2ycii3c50hml23mwy6bjxpry126g1dw11hyiwcxgv"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Test-NoTabs/")
+     "https://metacpan.org/release/Test-NoTabs")
     (synopsis
      "Check the presence of tabs in your project")
     (description
@@ -864,8 +864,7 @@ stored.  It automatically adds an extra test that will run when your script
 ends to check that there were no warnings.  If there were any warnings, the
 test will fail and output diagnostics of where, when and what the warning was,
 including a stack trace of what was going on when it occurred.")
-    (home-page (string-append "http://search.cpan.org/~adamk//"
-                              "Test-NoWarnings-" version))
+    (home-page "https://metacpan.org/release/Test-NoWarnings")
     (license lgpl2.1)))
 
 (define-public perl-test-number-delta
@@ -880,7 +879,7 @@ including a stack trace of what was going on when it occurred.")
                (base32
                 "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-Number-Delta/")
+    (home-page "https://metacpan.org/release/Test-Number-Delta")
     (synopsis
      "Compare the difference between numbers against a given tolerance")
     (description
@@ -912,8 +911,7 @@ usually called epsilon.  This module provides such a function for use with
      "Test::Output provides a simple interface for testing output sent to
 STDOUT or STDERR.  A number of different utilities are included to try and be
 as flexible as possible to the tester.")
-    (home-page (string-append "http://search.cpan.org/~bdfoy//"
-                              "Test-Output-" version))
+    (home-page "https://metacpan.org/release/Test-Output")
     (license perl-license)))
 
 (define-public perl-test-pod
@@ -930,7 +928,7 @@ as flexible as possible to the tester.")
          "1z75x1pxwp8ajwq9iazlg2c3wd7rdlim08yclpdg32qnc36dpa30"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Test-Pod/")
+    (home-page "https://metacpan.org/release/Test-Pod")
     (synopsis "Check for POD errors in files")
     (description "Check POD files for errors or warnings in a test file, using
 Pod::Simple to do the heavy lifting.")
@@ -951,7 +949,7 @@ Pod::Simple to do the heavy lifting.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-pod-coverage" ,perl-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/Test-Pod-Coverage/")
+    (home-page "https://metacpan.org/release/Test-Pod-Coverage")
     (synopsis "Check for pod coverage")
     (description "This module adds a test to your Perl distribution which
 checks for pod coverage of all appropriate files.")
@@ -970,7 +968,7 @@ checks for pod coverage of all appropriate files.")
         (base32
          "1d9f481lj12cw1ciil46xq9nq16p6a90nm7yrsalpf8asn8s6s17"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-Requires/")
+    (home-page "https://metacpan.org/release/Test-Requires")
     (synopsis "Checks to see if the module can be loaded")
     (description "Test::Requires checks to see if the module can be loaded.
 If this fails, then rather than failing tests this skips all tests.")
@@ -991,7 +989,7 @@ If this fails, then rather than failing tests this skips all tests.")
         (base32
          "0gl33vpj9bb78pzyijp884b66sbw6jkh1ci0xki8rmf03hmb79xv"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-RequiresInternet/")
+    (home-page "https://metacpan.org/release/Test-RequiresInternet")
     (synopsis "Easily test network connectivity when running tests")
     (description
      "This Perl module is intended to easily test network connectivity to
@@ -1023,7 +1021,7 @@ reported, and the tests skipped.")
        ("perl-multidimensional" ,perl-multidimensional)
        ("perl-strictures" ,perl-strictures)
        ("perl-sub-install" ,perl-sub-install)))
-    (home-page "http://search.cpan.org/dist/Test-Roo/")
+    (home-page "https://metacpan.org/release/Test-Roo")
     (synopsis "Composable, reusable tests with roles and Moo")
     (description "Test::Roo provides composable, reusable tests with roles.")
     (license asl2.0)))
@@ -1049,7 +1047,7 @@ reported, and the tests skipped.")
      `(("perl-path-tiny" ,perl-path-tiny)
        ("perl-test-trap" ,perl-test-trap)
        ("valgrind" ,valgrind)))
-    (home-page "http://search.cpan.org/dist/Test-RunValgrind/")
+    (home-page "https://metacpan.org/release/Test-RunValgrind")
     (synopsis "Tests that an external program is valgrind-clean")
     (description "Test::RunValgind checks weather Valgrind does not detect
 errors (such as memory leaks) in an arbitrary binary executable.")
@@ -1075,7 +1073,7 @@ errors (such as memory leaks) in an arbitrary binary executable.")
      "The intent of the Test::Script module is to provide a series of basic
 tests for 80% of the testing you will need to do for scripts in the script (or
 bin as is also commonly used) paths of your Perl distribution.")
-    (home-page "http://search.cpan.org/dist/Test-Script/")
+    (home-page "https://metacpan.org/release/Test-Script")
     (license perl-license)))
 
 (define-public perl-test-sharedfork
@@ -1093,7 +1091,7 @@ bin as is also commonly used) paths of your Perl distribution.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-requires" ,perl-test-requires)))
-    (home-page "http://search.cpan.org/dist/Test-SharedFork/")
+    (home-page "https://metacpan.org/release/Test-SharedFork")
     (synopsis "Fork test in Perl")
     (description "Test::SharedFork is a utility module for Test::Builder.  It
 makes fork(2) safe to use in test cases.")
@@ -1114,8 +1112,7 @@ makes fork(2) safe to use in test cases.")
     (synopsis "Basic utilities for writing tests")
     (description
      "Test::Simple contains basic utilities for writing tests.")
-    (home-page (string-append "http://search.cpan.org/~exodist//"
-                              "Test-Simple-" version))
+    (home-page "https://metacpan.org/release/Test-Simple")
     (license perl-license)))
 
 (define-public perl-test-taint
@@ -1131,7 +1128,7 @@ makes fork(2) safe to use in test cases.")
         (base32
          "01rip5d7gdr1c7lq6yczzkqfd0500nfa977ryigylj6jj75526vj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-Taint/")
+    (home-page "https://metacpan.org/release/Test-Taint")
     (synopsis "Checks for taintedness of variables")
     (description "Tainted data is data that comes from an unsafe source, such
 as the command line, or, in the case of web apps, any @code{GET} or
@@ -1160,9 +1157,7 @@ easy ways to check and report on the taintedness of your data, in standard
     (description
      "Test::Tester allows testing of test modules based on Test::Builder with
 a minimum of effort.")
-    (home-page (string-append "http://search.cpan.org/~fdaly//"
-                              "Test-Tester-" version))
-    ;; "Under the same license as Perl itself"
+    (home-page "https://metacpan.org/release/FDALY/Test-Tester-0.109")
     (license perl-license)))
 
 (define-public perl-test-perltidy
@@ -1184,7 +1179,7 @@ a minimum of effort.")
        ("perl-file-slurp" ,perl-file-slurp)
        ("perltidy" ,perltidy)
        ("perl-text-diff" ,perl-text-diff)))
-    (home-page "http://search.cpan.org/dist/Test-PerlTidy/")
+    (home-page "https://metacpan.org/release/Test-PerlTidy")
     (synopsis "Check that all your Perl files are tidy")
     (description
      "Using @code{Test::PerlTidy}, any file ending in .pl, .pm, .t or .PL will
@@ -1210,7 +1205,7 @@ cause a test fail unless it is exactly as @code{perltidy} would like it to be.")
     (propagated-inputs
      `(("perl-test-tester" ,perl-test-tester)
        ("perl-data-dump" ,perl-data-dump)))
-    (home-page "http://search.cpan.org/dist/Test-Trap/")
+    (home-page "https://metacpan.org/release/Test-Trap")
     (synopsis "Trap exit codes, exceptions, output, and so on")
     (description "This module is primarily (but not exclusively) for use in
 test scripts: A block eval configurable and extensible but by default trapping
@@ -1233,7 +1228,7 @@ from boxed blocks of test code.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/Test-utf8/")
+    (home-page "https://metacpan.org/release/Test-utf8")
     (synopsis "UTF-8 testing in Perl")
     (description "This module is a collection of tests useful for dealing with
 UTF-8 strings in Perl.  This module has two types of tests: The validity tests
@@ -1256,7 +1251,7 @@ will check that string has a given set of characteristics.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-sub-uplevel" ,perl-sub-uplevel)))
-    (home-page "http://search.cpan.org/dist/Test-Warn/")
+    (home-page "https://metacpan.org/release/Test-Warn")
     (synopsis "Perl extension to test methods for warnings")
     (description "This module provides a few convenience methods for testing
 warning based code.")
@@ -1275,7 +1270,7 @@ warning based code.")
         (base32
          "024srkwjckp15dxkni9lb1hc8bg4xwc52zz0iich8rv1nnqnhaxf"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-Warnings/")
+    (home-page "https://metacpan.org/release/Test-Warnings")
     (synopsis "Test for warnings and the lack of them")
     (description "This module is intended to be used as a drop-in replacement
 for Test::NoWarnings.  It also adds an extra test, but runs this test before
@@ -1297,7 +1292,7 @@ plan, or not, and things will still Just Work.")
         (base32
          "0955ib9cz1naz7a2v6lx78kj29q7ihmdn51im6wd1im669yfp6lf"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Test-Without-Module/")
+    (home-page "https://metacpan.org/release/Test-Without-Module")
     (synopsis "Test fallback behaviour in absence of modules")
     (description "This module allows you to deliberately hide modules from a
 program even though they are installed.  This is mostly useful for testing
@@ -1325,7 +1320,7 @@ installed.")
      `(("perl-data-tumbler" ,perl-data-tumbler)
        ("perl-file-homedir" ,perl-file-homedir)
        ("perl-module-pluggable" ,perl-module-pluggable)))
-    (home-page "http://search.cpan.org/dist/Test-WriteVariants/")
+    (home-page "https://metacpan.org/release/Test-WriteVariants")
     (synopsis "Dynamic generation of tests")
     (description "The Test::WriteVariants module provides for the dynamic
 generation of tests in nested combinations of contexts.")
@@ -1346,7 +1341,7 @@ generation of tests in nested combinations of contexts.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-test-base" ,perl-test-base)))
-    (home-page "http://search.cpan.org/dist/Test-YAML/")
+    (home-page "https://metacpan.org/release/Test-YAML")
     (synopsis "Testing module for YAML implementations")
     (description "Test::YAML is a subclass of Test::Base with YAML specific
 support.")
@@ -1376,7 +1371,7 @@ support.")
       ("perl-text-glob" ,perl-text-glob)
       ("perl-number-compare" ,perl-number-compare)))
   (home-page
-    "http://search.cpan.org/dist/Test-TrailingSpace/")
+    "https://metacpan.org/release/Test-TrailingSpace")
   (synopsis
     "Test for trailing space in Perl source files")
   (description "Test::TrailingSpace tests for trailing spaces
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 493b7860bd..965a0603f8 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -209,7 +209,7 @@
         (base32
          "01hlcaxndls86bl92rkd3fvf9pfa3inxqaimv88bxs95803kmkss"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Algorithm-C3/")
+    (home-page "https://metacpan.org/release/Algorithm-C3")
     (synopsis "Module for merging hierarchies using the C3 algorithm")
     (description "This module implements the C3 algorithm, which aims to
 provide a sane method resolution order under multiple inheritance.")
@@ -228,7 +228,7 @@ provide a sane method resolution order under multiple inheritance.")
         (base32
          "0l8pk7ziz72d022hsn4xldhhb9f5649j5cgpjdibch0xng24ms1h"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Algorithm-Diff/")
+    (home-page "https://metacpan.org/release/Algorithm-Diff")
     (synopsis "Compute differences between two files or lists")
     (description "This is a module for computing the difference between two
 files, two strings, or any other two lists of things.  It uses an intelligent
@@ -251,7 +251,7 @@ differences.")
          "1syyqzy462501kn5ma9gl6xbmcahqcn4qpafhsmpz0nd0x2m4l63"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/aliased/")
+    (home-page "https://metacpan.org/release/aliased")
     (synopsis "Use shorter versions of class names")
     (description "The alias module loads the class you specify and exports
 into your namespace a subroutine that returns the class name.  You can
@@ -274,7 +274,7 @@ implicitly.")
     (native-inputs
      `(("perl-mouse" ,perl-mouse)
        ("perl-moose" ,perl-moose)))
-    (home-page "http://search.cpan.org/dist/Any-Moose/")
+    (home-page "https://metacpan.org/release/Any-Moose")
     (synopsis "Transparently use Moose or Mouse modules")
     (description
      "This module facilitates using @code{Moose} or @code{Mouse} modules
@@ -299,7 +299,7 @@ variable ANY_MOOSE to be Moose or Mouse.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-pod" ,perl-test-pod)))
-    (home-page "http://search.cpan.org/dist/AppConfig/")
+    (home-page "https://metacpan.org/release/AppConfig")
     (synopsis "Configuration files and command line parsing")
     (description "AppConfig is a bundle of Perl5 modules for reading
 configuration files and parsing command line arguments.")
@@ -320,7 +320,7 @@ configuration files and parsing command line arguments.")
         (base32
          "0w1pwvnjdpb0n6k07zbknxwx6v7y75p4jxrs594pjhwvrmzippc9"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Array-Utils/")
+    (home-page "https://metacpan.org/release/Array-Utils")
     (synopsis "Small utils for array manipulation")
     (description "@code{Array::Utils} is a small pure-perl module containing
 list manipulation routines.")
@@ -340,7 +340,7 @@ list manipulation routines.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
-    (home-page "http://search.cpan.org/dist/Async-Interrupt/")
+    (home-page "https://metacpan.org/release/Async-Interrupt")
     (synopsis "Allow C/XS libraries to interrupt perl asynchronously")
     (description
      "@code{Async::Interrupt} implements a single feature only of interest
@@ -372,7 +372,7 @@ sometimes even without using a single syscall.")
         (base32
          "1422kw9fknv7rbjkgdfflg1q3mb69d3yryszp38dn0bgzkqhwkc1"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/autovivification/")
+    (home-page "https://metacpan.org/release/autovivification")
     (synopsis "Lexically disable autovivification")
     (description "When an undefined variable is dereferenced, it gets silently
 upgraded to an array or hash reference (depending of the type of the
@@ -406,7 +406,7 @@ error when it would have happened.")
     (propagated-inputs
      `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
        ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
-    (home-page "http://search.cpan.org/dist/bareword-filehandles/")
+    (home-page "https://metacpan.org/release/bareword-filehandles")
     (synopsis "Disables bareword filehandles")
     (description "This module disables bareword filehandles.")
     (license (package-license perl))))
@@ -424,7 +424,7 @@ error when it would have happened.")
         (base32
          "01n3l5ifmn2wd0aadpnzya27b75imibj9zdivkfzcpnviqgx5c2m"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/base/")
+    (home-page "https://metacpan.org/release/base")
     (synopsis "Establish an ISA relationship with base classes at compile time")
     (description "Allows you to both load one or more modules, while setting
 up inheritance from those modules at the same time.  Unless you are using the
@@ -445,7 +445,7 @@ parent.")
         (base32
          "0rv80n5ihy9vnrzsc3l7wlk8880cwabiljrydrdnxq1gg0lk3sxc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Browser-Open/")
+    (home-page "https://metacpan.org/release/Browser-Open")
     (synopsis "Open a browser in a given URL")
     (description "The functions exported by this module allow you to open URLs
 in the user's browser.  A set of known commands per OS-name is tested for
@@ -471,7 +471,7 @@ all known commands are checked.")
        ("perl-module-implementation" ,perl-module-implementation)
        ("perl-sub-exporter-progressive" ,perl-sub-exporter-progressive)
        ("perl-variable-magic" ,perl-variable-magic)))
-    (home-page "http://search.cpan.org/dist/B-Hooks-EndOfScope/")
+    (home-page "https://metacpan.org/release/B-Hooks-EndOfScope")
     (synopsis "Execute code after a scope finished compilation")
     (description "This module allows you to execute code when perl finished
 compiling the surrounding scope.")
@@ -493,7 +493,7 @@ compiling the surrounding scope.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-extutils-depends" ,perl-extutils-depends)))
-    (home-page "http://search.cpan.org/dist/B-Hooks-OP-Check/")
+    (home-page "https://metacpan.org/release/B-Hooks-OP-Check")
     (synopsis "Wrap OP check callbacks")
     (description "This module allows you to wrap OP check callbacks.")
     (license (package-license perl))))
@@ -511,7 +511,7 @@ compiling the surrounding scope.")
         (base32
          "1nhdplmd0y69lnwyajg3anhk6pm13nm6qzm05nzpz8zl7j7fzlk5"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/B-Keywords/")
+    (home-page "https://metacpan.org/release/B-Keywords")
     (synopsis "Lists of reserved barewords and symbol names")
     (description "@code{B::Keywords} supplies several arrays of exportable
 keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,
@@ -543,8 +543,7 @@ conveniently, as well as benchmark code by allowing timings of repeated
 trials.  It is perfect for when you need more precise information about the
 running time of portions of your code than the Benchmark module will give you,
 but don't want to go all out and profile your code.")
-    (home-page (string-append "http://search.cpan.org/~dcoppit/"
-                              "Benchmark-Timer-" version "/"))
+    (home-page "https://metacpan.org/release/Benchmark-Timer")
     (license gpl2)))
 
 (define-public perl-bit-vector
@@ -562,7 +561,7 @@ but don't want to go all out and profile your code.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-carp-clan" ,perl-carp-clan)))
-    (home-page "http://search.cpan.org/dist/Bit-Vector/")
+    (home-page "https://metacpan.org/release/Bit-Vector")
     (synopsis "Bit vector library")
     (description "Bit::Vector is an efficient C library which allows you to
 handle bit vectors, sets (of integers), \"big integer arithmetic\" and boolean
@@ -585,7 +584,7 @@ library can nevertheless be used stand-alone, without Perl.")
         (base32
          "18hrgldzwnhs0c0r8hxx6r05qvk9p7gwinjwcybixfs2h0n43ypj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/boolean/")
+    (home-page "https://metacpan.org/release/boolean")
     (synopsis "Boolean support for Perl")
     (description "This module provides basic Boolean support, by defining two
 special objects: true and false.")
@@ -604,7 +603,7 @@ special objects: true and false.")
         (base32
          "1jc5jrjwkr6pqga7998zkgw0yrxgb5n1y7lzgddawxibkf608mn7"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Business-ISBN-Data/")
+    (home-page "https://metacpan.org/release/Business-ISBN-Data")
     (synopsis "Data files for Business::ISBN")
     (description "This package provides a data pack for @code{Business::ISBN}.
 These data are generated from the RangeMessage.xml file provided by the ISBN
@@ -627,7 +626,7 @@ Agency.")
     (propagated-inputs
      `(("perl-business-isbn-data" ,perl-business-isbn-data)
        ("perl-mojolicious" ,perl-mojolicious)))
-    (home-page "http://search.cpan.org/dist/Business-ISBN/")
+    (home-page "https://metacpan.org/release/Business-ISBN")
     (synopsis "Work with International Standard Book Numbers")
     (description "This modules provides tools to deal with International
 Standard Book Numbers, including ISBN-10 and ISBN-13.")
@@ -646,7 +645,7 @@ Standard Book Numbers, including ISBN-10 and ISBN-13.")
         (base32
          "1dfnm7h7lbqj356700ldlmgbr51v6hyjn1qig2bb4ysl1wn1jnzi"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Business-ISSN/")
+    (home-page "https://metacpan.org/release/Business-ISSN")
     (synopsis "Work with International Standard Serial Numbers")
     (description "This modules provides tools to deal with International
 Standard Serial Numbers.")
@@ -667,7 +666,7 @@ Standard Serial Numbers.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-tie-cycle" ,perl-tie-cycle)))
-    (home-page "http://search.cpan.org/dist/Business-ISMN/")
+    (home-page "https://metacpan.org/release/Business-ISMN")
     (synopsis "Work with International Standard Music Numbers")
     (description "This modules provides tools to deal with International
 Standard Music Numbers.")
@@ -689,7 +688,7 @@ Standard Music Numbers.")
      `(("perl-digest-sha1" ,perl-digest-sha1)
        ("perl-error" ,perl-error)
        ("perl-ipc-sharelite" ,perl-ipc-sharelite)))
-    (home-page "http://search.cpan.org/dist/Cache-Cache/")
+    (home-page "https://metacpan.org/release/Cache-Cache")
     (synopsis "Cache interface for Perl")
     (description "The Cache modules are designed to assist a developer in
 persisting data for a specified period of time.  Often these modules are used
@@ -713,7 +712,7 @@ easy to use abstraction of the file system or shared memory.")
         (base32
          "0h3ckr04cdn6dvl40m4m97vl5ybf30v1lwhw3jvkr92kpksvq4hd"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Cache-FastMmap/")
+    (home-page "https://metacpan.org/release/Cache-FastMmap")
     (synopsis "Shared memory interprocess cache via mmap")
     (description "A shared memory cache through an mmap'ed file.  It's core is
 written in C for performance.  It uses fcntl locking to ensure multiple
@@ -735,7 +734,7 @@ algorithm to keep the most used entries in the cache.")
         (base32
          "069yrikrrb4vqzc3hrkkfj96apsh7q0hg8lhihq97lxshwz128vc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Capture-Tiny/")
+    (home-page "https://metacpan.org/release/Capture-Tiny")
     (synopsis "Capture STDOUT and STDERR from Perl, XS or external programs")
     (description
      "Capture::Tiny provides a simple, portable way to capture almost anything
@@ -756,7 +755,7 @@ is captured while being passed through to the original file handles.")
                (base32
                 "01vih43hvpqy67m6a6fwmlswli91mqpv8n8ccglvlkc33l8hn97x"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Canary-Stability/")
+    (home-page "https://metacpan.org/release/Canary-Stability")
     (synopsis "Check compatibility with the installed perl version")
     (description
      "This module is used by Schmorp's modules during configuration stage
@@ -776,7 +775,7 @@ to test the installed perl for compatibility with his modules.")
                (base32
                 "00bijwwc0ix27h2ma3lvsf3b56biar96bl9dikxgx7cmpcycxad5"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Carp/")
+    (home-page "https://metacpan.org/release/Carp")
     (synopsis "Alternative warn and die for modules")
     (description "The @code{Carp} routines are useful in your own modules
 because they act like @code{die()} or @code{warn()}, but with a message
@@ -803,7 +802,7 @@ but it is a good educated guess.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-base" ,perl-test-base)))
-    (home-page "http://search.cpan.org/dist/Carp-Always")
+    (home-page "https://metacpan.org/release/Carp-Always")
     (synopsis "Warns and dies noisily with stack backtraces/")
     (description "This module is meant as a debugging aid.  It can be used to
 make a script complain loudly with stack backtraces when @code{warn()}-ing or
@@ -823,7 +822,7 @@ make a script complain loudly with stack backtraces when @code{warn()}-ing or
         (base32
          "0km5fc6r6whxh6h5yd7g1j0bi96sgk0gkda6cardicrw9qmqwkwj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Carp-Assert/")
+    (home-page "https://metacpan.org/release/Carp-Assert")
     (synopsis "Executable comments for Perl")
     (description "Carp::Assert is intended for a purpose like the ANSI C
 library assert.h.")
@@ -846,7 +845,7 @@ library assert.h.")
      `(("perl-test-exception" ,perl-test-exception)))
     (propagated-inputs
      `(("perl-carp-assert" ,perl-carp-assert)))
-    (home-page "http://search.cpan.org/dist/Carp-Assert-More/")
+    (home-page "https://metacpan.org/release/Carp-Assert-More")
     (synopsis "Convenience wrappers around Carp::Assert")
     (description "Carp::Assert::More is a set of handy assertion functions for
 Perl.")
@@ -867,7 +866,7 @@ Perl.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/Carp-Clan/")
+    (home-page "https://metacpan.org/release/Carp-Clan")
     (synopsis "Report errors from a \"clan\" of modules")
     (description "This module allows errors from a clan (or family) of modules
 to appear to originate from the caller of the clan.  This is necessary in
@@ -888,7 +887,7 @@ the Carp.pm module doesn't help.")
                (base32
                 "1jfrwvfasylcafbvb0jjm94ad4v6k99a7rf5i4qwzhg4m0gvmk5x"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/CDDB_get/")
+    (home-page "https://metacpan.org/release/CDDB_get")
     (synopsis "Read the CDDB entry for an audio CD in your drive")
     (description "This module can retrieve information from the CDDB.")
     ;; Either GPLv2 or the "Artistic" license.
@@ -911,7 +910,7 @@ the Carp.pm module doesn't help.")
      `(("perl-sub-name" ,perl-sub-name)))
     (propagated-inputs
      `(("perl-base" ,perl-base)))
-    (home-page "http://search.cpan.org/dist/Class-Accessor/")
+    (home-page "https://metacpan.org/release/Class-Accessor")
     (synopsis "Automated accessor generation")
     (description "This module automagically generates accessors/mutators for
 your class.")
@@ -934,7 +933,7 @@ your class.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-class-accessor" ,perl-class-accessor)))
-    (home-page "http://search.cpan.org/dist/Class-Accessor-Chained/")
+    (home-page "https://metacpan.org/release/Class-Accessor-Chained")
     (synopsis "Faster, but less expandable, chained accessors")
     (description "A chained accessor is one that always returns the object
 when called with parameters (to set), and the value of the field when called
@@ -962,7 +961,7 @@ the same mk_accessors interface.")
      `(("perl-class-xsaccessor" ,perl-class-xsaccessor)
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-sub-name" ,perl-sub-name)))
-    (home-page "http://search.cpan.org/dist/Class-Accessor-Grouped/")
+    (home-page "https://metacpan.org/release/Class-Accessor-Grouped")
     (synopsis "Build groups of accessors")
     (description "This class lets you build groups of accessors that will call
 different getters and setters.")
@@ -983,7 +982,7 @@ different getters and setters.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-algorithm-c3" ,perl-algorithm-c3)))
-    (home-page "http://search.cpan.org/dist/Class-C3/")
+    (home-page "https://metacpan.org/release//Class-C3")
     (synopsis "Pragma to use the C3 method resolution order algorithm")
     (description "This is pragma to change Perl 5's standard method resolution
 order from depth-first left-to-right (a.k.a - pre-order) to the more
@@ -1008,7 +1007,7 @@ sophisticated C3 method resolution order.")
     (propagated-inputs
      `(("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Class-C3-Adopt-NEXT/")
+    (home-page "https://metacpan.org/release/Class-C3-Adopt-NEXT")
     (synopsis "Drop-in replacement for NEXT")
     (description "This module is intended as a drop-in replacement for NEXT,
 supporting the same interface, but using Class::C3 to do the hard work.")
@@ -1034,7 +1033,7 @@ supporting the same interface, but using Class::C3 to do the hard work.")
      `(("perl-class-c3" ,perl-class-c3)
        ("perl-class-inspector" ,perl-class-inspector)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Class-C3-Componentised/")
+    (home-page "https://metacpan.org/release/Class-C3-Componentised")
     (synopsis "Load mix-ins or components to your C3-based class")
     (description "This module will inject base classes to your module using
 the Class::C3 method resolution order.")
@@ -1053,7 +1052,7 @@ the Class::C3 method resolution order.")
         (base32
          "0jpi38wy5xh6p1mg2cbyjjw76vgbccqp46685r27w8hmxb7gwrwr"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-Data-Inheritable/")
+    (home-page "https://metacpan.org/release/Class-Data-Inheritable")
     (synopsis "Inheritable, overridable class data")
     (description "Class::Data::Inheritable is for creating accessor/mutators
 to class data.  That is, if you want to store something about your class as a
@@ -1075,7 +1074,7 @@ subclasses and can be overridden.")
          "0dd707sq8ix2dqbnp7ga77ba69r3vsn0cd6scnkn13s0gm2g4b00"))))
     (build-system perl-build-system)
     (arguments `(#:tests? #f))          ;timezone tests in chroot
-    (home-page "http://search.cpan.org/dist/Class-Date/")
+    (home-page "https://metacpan.org/release/Class-Date")
     (synopsis "Class for easy date and time manipulation")
     (description "This module provides a general-purpose date and datetime
 type for perl.")
@@ -1093,7 +1092,7 @@ type for perl.")
                (base32
                 "00j5f0z4riyq7i95jww291dpmbn0hmmvkcbrh7p0p8lpqz7jsb9l"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-ErrorHandler/")
+    (home-page "https://metacpan.org/release/Class-ErrorHandler")
     (synopsis "Base class for error handling")
     (description
      "@code{Class::ErrorHandler} provides an error-handling mechanism that is generic
@@ -1116,7 +1115,7 @@ to the calling program.")
          "09ifd6v0c94vr20n9yr1dxgcp7hyscqq851szdip7y24bd26nlbc"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Class-Factory-Util/")
+    (home-page "https://metacpan.org/release/Class-Factory-Util")
     (synopsis "Utility methods for factory classes")
     (description "This module exports methods useful for factory classes.")
     (license (package-license perl))))
@@ -1134,7 +1133,7 @@ to the calling program.")
         (base32
          "0d85rihxahdvhj8cysqrgg0kbmcqghz5hgy41dbkxr1qaf5xrynf"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-Inspector/")
+    (home-page "https://metacpan.org/release/Class-Inspector")
     (synopsis "Get information about a class and its structure")
     (description "Class::Inspector allows you to get information about a
 loaded class.")
@@ -1164,7 +1163,7 @@ loaded class.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-module-implementation" ,perl-module-implementation)))
-    (home-page "http://search.cpan.org/dist/Class-Load/")
+    (home-page "https://metacpan.org/release/Class-Load")
     (synopsis "Working (require \"Class::Name\") and more")
     (description "\"require EXPR\" only accepts Class/Name.pm style module
 names, not Class::Name.  For that, this module provides \"load_class
@@ -1189,7 +1188,7 @@ names, not Class::Name.  For that, this module provides \"load_class
        ("perl-test-needs" ,perl-test-needs)
        ("perl-test-without-module" ,perl-test-without-module)))
     (inputs `(("perl-class-load" ,perl-class-load)))
-    (home-page "http://search.cpan.org/dist/Class-Load-XS/")
+    (home-page "https://metacpan.org/release/Class-Load-XS")
     (synopsis "XS implementation of parts of Class::Load")
     (description "This module provides an XS implementation for portions of
 Class::Load.")
@@ -1209,7 +1208,7 @@ Class::Load.")
         (base32
          "0a03i4k3a33qqwhykhz5k437ld5mag2vq52vvsy03gbynb65ivsy"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-MethodMaker/")
+    (home-page "https://metacpan.org/release/Class-MethodMaker")
     (synopsis "Create generic methods for OO Perl")
     (description "This module solves the problem of having to continually
 write accessor methods for your objects that perform standard tasks.")
@@ -1231,7 +1230,7 @@ write accessor methods for your objects that perform standard tasks.")
     (native-inputs
      `(("perl-test-fatal" ,perl-test-fatal)
        ("perl-test-requires" ,perl-test-requires)))
-    (home-page "http://search.cpan.org/dist/Class-Method-Modifiers/")
+    (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
@@ -1253,7 +1252,7 @@ original method.")
         (base32
          "0y7ngrjf551bjgmijp5rsidbkq6c8hb5lmy2jcqq0fify020s8iq"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-Singleton/")
+    (home-page "https://metacpan.org/release/Class-Singleton")
     (synopsis "Implementation of a singleton class for Perl")
     (description "This module implements a Singleton class from which other
 classes can be derived.  By itself, the Class::Singleton module does very
@@ -1273,7 +1272,7 @@ little other than manage the instantiation of a single object.")
         (base32
          "0knbi1agcfc9d7fca0szvxr6335pb22pc5n648q1vrcba8qvvz1f"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-Tiny/")
+    (home-page "https://metacpan.org/release/Class-Tiny")
     (synopsis "Minimalist class construction")
     (description "This module offers a minimalist class construction kit.  It
 uses no non-core modules for any recent Perl.")
@@ -1294,7 +1293,7 @@ uses no non-core modules for any recent Perl.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-class-inspector" ,perl-class-inspector)))
-    (home-page "http://search.cpan.org/dist/Class-Unload/")
+    (home-page "https://metacpan.org/release/Class-Unload")
     (synopsis "Unload a class")
     (description "Class:Unload unloads a given class by clearing out its
 symbol table and removing it from %INC.")
@@ -1313,7 +1312,7 @@ symbol table and removing it from %INC.")
         (base32
          "1wm6013il899jnm0vn50a7iv9v6r4nqywbqzj0csyf8jbwwnpicr"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Class-XSAccessor/")
+    (home-page "https://metacpan.org/release/Class-XSAccessor")
     (synopsis "Generate fast XS accessors without runtime compilation")
     (description "Class::XSAccessor implements fast read, write, and
 read/write accessors in XS.  Additionally, it can provide predicates such as
@@ -1340,8 +1339,7 @@ arrays for their internal representation.")
      "This module provides a clone() method which makes recursive copies of
 nested hash, array, scalar and reference types, including tied variables and
 objects.")
-    (home-page (string-append "http://search.cpan.org/~garu/"
-                              "Clone-" version "/"))
+    (home-page "https://metacpan.org/release/Clone")
     (license (package-license perl))))
 
 (define-public perl-clone-pp
@@ -1357,7 +1355,7 @@ objects.")
         (base32
          "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Clone-PP/")
+    (home-page "https://metacpan.org/release/Clone-PP")
     (synopsis "Recursively copy Perl datatypes")
     (description "This module provides a general-purpose @code{clone} function
 to make deep copies of Perl data structures.  It calls itself recursively to
@@ -1378,7 +1376,7 @@ and objects.")
         (base32
          "1wxv2s0hbjkrnssvxvsds0k213awg5pgdlrpkr6xkpnimc17s7vp"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/common-sense/")
+    (home-page "https://metacpan.org/release/common-sense")
     (synopsis "Sane defaults for Perl programs")
     (description "This module implements some sane defaults for Perl programs,
 as defined by two typical specimens of Perl coders.")
@@ -1399,7 +1397,7 @@ as defined by two typical specimens of Perl coders.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-module-pluggable" ,perl-module-pluggable)))
-    (home-page "http://search.cpan.org/dist/Config-Any/")
+    (home-page "https://metacpan.org/release/Config-Any")
     (synopsis "Load configuration from different file formats")
     (description "Config::Any provides a facility for Perl applications and
 libraries to load configuration data from multiple different file formats.  It
@@ -1421,7 +1419,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Config-AutoConf/")
+    (home-page "https://metacpan.org/release/Config-AutoConf")
     (synopsis "Module to implement some AutoConf macros in Perl")
     (description "Config::AutoConf is intended to provide the same
 opportunities to Perl developers as GNU Autoconf does for Shell developers.")
@@ -1440,7 +1438,7 @@ opportunities to Perl developers as GNU Autoconf does for Shell developers.")
         (base32
          "0szxxaihz71pr0r2jp9wvbrfc3hrsxi9xrd9vnyrxlrax8sci5h9"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Config-General/")
+    (home-page "https://metacpan.org/release/Config-General")
     (synopsis "Generic Config Module")
     (description "This module opens a config file and parses its contents for
 you.  The format of config files supported by Config::General is inspired by
@@ -1468,7 +1466,7 @@ options.")
      `(("perl-mixin-linewise" ,perl-mixin-linewise)
        ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Config-INI/")
+    (home-page "https://metacpan.org/release/Config-INI")
     (synopsis "Simple .ini-file format reader and writer")
     (description "@code{Config::INI} is a module that facilates the reading
 and writing of @code{.ini}-style configuration files.")
@@ -1490,7 +1488,7 @@ and writing of @code{.ini}-style configuration files.")
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)
        ("perl-test-simple" ,perl-test-simple)))
-    (home-page "http://search.cpan.org/dist/Context-Preserve/")
+    (home-page "https://metacpan.org/release/Context-Preserve")
     (synopsis "Preserve context during subroutine call")
     (description "This module runs code after a subroutine call, preserving
 the context the subroutine would have seen if it were the last statement in
@@ -1516,7 +1514,7 @@ the caller.")
      `(("perl-file-slurp" ,perl-file-slurp)
        ("perl-test-most" ,perl-test-most)))
     (home-page
-     "http://search.cpan.org/dist/Convert-BinHex/")
+     "https://metacpan.org/release/Convert-BinHex")
     (synopsis "Extract data from Macintosh BinHex files")
     (description
      "BinHex is a format for transporting files safely through electronic
@@ -1539,7 +1537,7 @@ data.")
         (base32
          "13dy78amkhwg278sv5im0ylyskhxpfivyl2aissqqih71nlxxvh1"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/CPAN-Changes/")
+    (home-page "https://metacpan.org/release/CPAN-Changes")
     (synopsis "Read and write @file{Changes} files")
     (description
      "@code{CPAN::Changes} helps users programmatically read and write
@@ -1561,7 +1559,7 @@ data.")
     (build-system perl-build-system)
     (native-inputs `(("perl-test-deep" ,perl-test-deep)))
     (propagated-inputs `(("perl-cpan-meta" ,perl-cpan-meta)))
-    (home-page "http://search.cpan.org/dist/CPAN-Meta-Check/")
+    (home-page "https://metacpan.org/release/CPAN-Meta-Check")
     (synopsis "Verify requirements in a CPAN::Meta object")
     (description "This module verifies if requirements described in a
 CPAN::Meta object are present.")
@@ -1582,7 +1580,7 @@ CPAN::Meta object are present.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
-    (home-page "http://search.cpan.org/dist/Cpanel-JSON-XS/")
+    (home-page "https://metacpan.org/release/Cpanel-JSON-XS")
     (synopsis "JSON::XS for Cpanel")
     (description "This module converts Perl data structures to JSON and vice
 versa.")
@@ -1601,7 +1599,7 @@ versa.")
         (base32
          "0ca8544371wp4vvqsa19lnhl02hczpkbwkgsgm65ziwwim3r1gdi"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Crypt-RandPasswd/")
+    (home-page "https://metacpan.org/release/Crypt-RandPasswd")
     (synopsis "Random password generator")
     (description "Crypt::RandPasswd provides three functions that can be used
 to generate random passwords, constructed from words, letters, or characters.
@@ -1627,7 +1625,7 @@ Password Generator\".")
         (base32
          "1sp099cws0q225h6j4y68hmfd1lnv5877gihjs40f8n2ddf45i2y"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Crypt-RC4/")
+    (home-page "https://metacpan.org/release//Crypt-RC4")
     (synopsis "Perl implementation of the RC4 encryption algorithm")
     (description "A pure Perl implementation of the RC4 algorithm.")
     (license (package-license perl))))
@@ -1647,7 +1645,7 @@ Password Generator\".")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-requires" ,perl-test-requires)))
-    (home-page "http://search.cpan.org/dist/Cwd-Guard/")
+    (home-page "https://metacpan.org/release/Cwd-Guard")
     (synopsis "Temporarily change working directory")
     (description
      "@code{Cwd::Guard} changes the current directory using a limited scope.
@@ -1717,7 +1715,7 @@ bioinformatics data.")
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-role-tiny" ,perl-role-tiny)
        ("perl-strictures" ,perl-strictures)))
-    (home-page "http://search.cpan.org/dist/Data-Perl/")
+    (home-page "https://metacpan.org/release/Data-Perl")
     (synopsis "Base classes wrapping fundamental Perl data types")
     (description "Collection of classes that wrap fundamental data types that
 exist in Perl.  These classes and methods as they exist today are an attempt
@@ -1741,7 +1739,7 @@ input.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-file-find-rule" ,perl-file-find-rule)))
-    (home-page "http://search.cpan.org/dist/Data-Compare/")
+    (home-page "https://metacpan.org/release/Data-Compare")
     (synopsis "Compare Perl data structures")
     (description "This module compares arbitrary data structures to see if
 they are copies of each other.")
@@ -1760,7 +1758,7 @@ they are copies of each other.")
         (base32
          "1jsc6acmv97pzsvx1fqywz4qvxxpp7kwmb78ygyqpsczkfj9p4dn"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Data-Uniqid/")
+    (home-page "https://metacpan.org/release/Data-Uniqid")
     (synopsis "Perl extension for generating unique identifiers")
     (description "@code{Data::Uniqid} provides three simple routines for
 generating unique ids.  These ids are coded with a Base62 systen to make them
@@ -1780,7 +1778,7 @@ short and handy (e.g. to use it as part of a URL).")
         (base32
          "0r9ba52b7p8nnn6nw0ygm06lygi8g68piri78jmlqyrqy5gb0lxg"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Data-Dump/")
+    (home-page "https://metacpan.org/release/Data-Dump")
     (synopsis "Pretty printing of data structures")
     (description "This module provide functions that takes a list of values as
 their argument and produces a string as its result.  The string contains Perl
@@ -1800,7 +1798,7 @@ code that, when \"eval\"ed, produces a deep copy of the original arguments.")
         (base32
          "0lsqbl1mxhkj0qnjfa1jrvx8wwbyi81bgwfyj1si6cdg7h8jzhm6"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Data-Dumper-Concise/")
+    (home-page "https://metacpan.org/release/Data-Dumper-Concise")
     (synopsis "Concise data dumper")
     (description "Data::Dumper::Concise provides a dumper with Less
 indentation and newlines plus sub deparsing.")
@@ -1823,7 +1821,7 @@ indentation and newlines plus sub deparsing.")
     (propagated-inputs
      `(("perl-sub-install" ,perl-sub-install)
        ("perl-params-util" ,perl-params-util)))
-    (home-page "http://search.cpan.org/dist/Data-OptList/")
+    (home-page "https://metacpan.org/release/Data-OptList")
     (synopsis "Parse and validate simple name/value option pairs")
     (description
      "Data::OptList provides a simple syntax for name/value option pairs.")
@@ -1847,7 +1845,7 @@ indentation and newlines plus sub deparsing.")
        ("perl-test-exception" ,perl-test-exception)))
     (propagated-inputs
      `(("perl-class-accessor-chained" ,perl-class-accessor-chained)))
-    (home-page "http://search.cpan.org/dist/Data-Page/")
+    (home-page "https://metacpan.org/release/Data-Page")
     (synopsis "Help when paging through sets of results")
     (description "When searching through large amounts of data, it is often
 the case that a result set is returned that is larger than we want to display
@@ -1883,7 +1881,7 @@ The maths behind this is unfortunately fiddly, hence this module.")
     (propagated-inputs
      `(("perl-list-moreutils" ,perl-list-moreutils)))
     (home-page
-     "http://search.cpan.org/dist/Data-Perl/")
+     "https://metacpan.org/release/Data-Perl")
     (synopsis "Base classes wrapping fundamental Perl data types")
     (description
      "@code{Data::Perl} is a container class for the following classes:
@@ -1916,7 +1914,7 @@ The maths behind this is unfortunately fiddly, hence this module.")
        ("perl-file-homedir" ,perl-file-homedir)
        ("perl-package-stash" ,perl-package-stash)
        ("perl-sort-naturally" ,perl-sort-naturally)))
-    (home-page "http://search.cpan.org/dist/Data-Printer/")
+    (home-page "https://metacpan.org/release/Data-Printer")
     (synopsis "Colored pretty-print of Perl data structures and objects")
     (description "Display Perl variables and objects on screen, properly
 formatted (to be inspected by a human).")
@@ -1940,7 +1938,7 @@ formatted (to be inspected by a human).")
        ("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-sub-uplevel" ,perl-sub-uplevel)))
-    (home-page "http://search.cpan.org/dist/Data-Record/")
+    (home-page "https://metacpan.org/release/Data-Record")
     (synopsis "Conditionally split data into records")
     (description "This Perl module allows you to split data into records by
 not only specifying what you wish to split the data on, but also by specifying
@@ -1969,7 +1967,7 @@ like split on newlines unless newlines are embedded in quotes.")
     (propagated-inputs
      `(("perl-mro-compat" ,perl-mro-compat)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Data-Section/")
+    (home-page "https://metacpan.org/release/Data-Section")
     (synopsis "Read multiple hunks of data out of your DATA section")
     (description "This package provides a Perl library to read multiple hunks
 of data out of your DATA section.")
@@ -1990,7 +1988,7 @@ of data out of your DATA section.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-string" ,perl-io-string)))
-    (home-page "http://search.cpan.org/dist/Data-Stag/")
+    (home-page "https://metacpan.org/release/Data-Stag")
     (synopsis "Structured tags datastructures")
     (description
      "This module is for manipulating data as hierarchical tag/value
@@ -2019,7 +2017,7 @@ Perl.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-path-class" ,perl-path-class)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Data-Stream-Bulk/")
+    (home-page "https://metacpan.org/release/Data-Stream-Bulk")
     (synopsis "N at a time iteration API")
     (description "This module tries to find middle ground between one at a
 time and all at once processing of data sets.  The purpose of this module is
@@ -2045,7 +2043,7 @@ necessary later on.")
      `(("perl-test-most" ,perl-test-most)))
     (propagated-inputs
      `(("perl-file-homedir" ,perl-file-homedir)))
-    (home-page "http://search.cpan.org/dist/Data-Tumbler/")
+    (home-page "https://metacpan.org/release/Data-Tumbler")
     (synopsis "Dynamic generation of nested combinations of variants")
     (description "Data::Tumbler - Dynamic generation of nested combinations of
 variants.")
@@ -2072,7 +2070,7 @@ variants.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-task-weaken" ,perl-task-weaken)
        ("perl-tie-toobject" ,perl-tie-toobject)))
-    (home-page "http://search.cpan.org/dist/Data-Visitor/")
+    (home-page "https://metacpan.org/release/Data-Visitor")
     (synopsis "Visitor style traversal of Perl data structures")
     (description "This module is a simple visitor implementation for Perl
 values.  It has a main dispatcher method, visit, which takes a single perl
@@ -2098,7 +2096,7 @@ structures, and all ref types (hashes, arrays, scalars, code, globs).")
     (propagated-inputs
      `(("perl-bit-vector" ,perl-bit-vector)
        ("perl-carp-clan" ,perl-carp-clan)))
-    (home-page "http://search.cpan.org/dist/Date-Calc/")
+    (home-page "https://metacpan.org/release/Date-Calc")
     (synopsis "Gregorian calendar date calculations")
     (description "This package consists of a Perl module for date calculations
 based on the Gregorian calendar, thereby complying with all relevant norms and
@@ -2123,7 +2121,7 @@ applicable).")
      `(("perl-bit-vector" ,perl-bit-vector)
        ("perl-carp-clan" ,perl-carp-clan)
        ("perl-date-calc" ,perl-date-calc)))
-    (home-page "http://search.cpan.org/dist/Date-Calc-XS/")
+    (home-page "https://metacpan.org/release/Date-Calc-XS")
     (synopsis "XS wrapper for Date::Calc")
     (description "Date::Calc::XS is an XS wrapper and C library plug-in for
 Date::Calc.")
@@ -2148,7 +2146,7 @@ Date::Calc.")
      ;; (gnu packages base) which would create a circular dependency.  TODO:
      ;; Maybe put this package elsewhere so we can turn on tests.
      '(#:tests? #f))
-    (home-page "http://search.cpan.org/dist/Date-Manip/")
+    (home-page "https://metacpan.org/release/Date-Manip")
     (synopsis "Date manipulation routines")
     (description "Date::Manip is a series of modules for common date/time
 operations, such as comparing two times, determining a date a given amount of
@@ -2168,7 +2166,7 @@ time from another, or parsing international times.")
         (base32
          "016x17r9wi6ffdc4idwirzd1sxqcb4lmq5fn2aiq25nf2iir5899"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Date-Simple/")
+    (home-page "https://metacpan.org/release/Date-Simple")
     (synopsis "Simple date handling")
     (description "Dates are complex enough without times and timezones.  This
 module may be used to create simple date objects.  It handles validation,
@@ -2201,7 +2199,7 @@ hours, minutes, seconds, and time zones.")
        ("perl-file-sharedir" ,perl-file-sharedir)
        ("perl-params-validate" ,perl-params-validate)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/DateTime/")
+    (home-page "https://metacpan.org/release/DateTime")
     (synopsis "Date and time object for Perl")
     (description "DateTime is a class for the representation of date/time
 combinations.  It represents the Gregorian calendar, extended backwards in
@@ -2224,7 +2222,7 @@ time before its creation (in 1582).")
     ;; Only needed for tests
     (native-inputs
      `(("perl-datetime" ,perl-datetime)))
-    (home-page "http://search.cpan.org/dist/DateTime-Calendar-Julian/")
+    (home-page "https://metacpan.org/release/DateTime-Calendar-Julian")
     (synopsis "Dates in the Julian calendar")
     (description "This package is a companion module to @code{DateTime.pm}.
 It implements the Julian calendar.  It supports everything that
@@ -2251,7 +2249,7 @@ precise.")
      `(("perl-datetime" ,perl-datetime)
        ("perl-params-validate" ,perl-params-validate)
        ("perl-set-infinite" ,perl-set-infinite)))
-    (home-page "http://search.cpan.org/dist/DateTime-Set/")
+    (home-page "https://metacpan.org/release/DateTime-Set")
     (synopsis "DateTime set objects")
     (description "The DateTime::Set module provides a date/time sets
 implementation.  It allows, for example, the generation of groups of dates,
@@ -2275,7 +2273,7 @@ within a time range.")
     (propagated-inputs
      `(("perl-datetime" ,perl-datetime)
        ("perl-datetime-event-recurrence" ,perl-datetime-event-recurrence)))
-    (home-page "http://search.cpan.org/dist/DateTime-Event-ICal/")
+    (home-page "https://metacpan.org/release/DateTime-Event-ICal")
     (synopsis "DateTime rfc2445 recurrences")
     (description "This module provides convenience methods that let you easily
 create DateTime::Set objects for RFC 2445 style recurrences.")
@@ -2297,7 +2295,7 @@ create DateTime::Set objects for RFC 2445 style recurrences.")
     (propagated-inputs
      `(("perl-datetime" ,perl-datetime)
        ("perl-datetime-set" ,perl-datetime-set)))
-    (home-page "http://search.cpan.org/dist/DateTime-Event-Recurrence/")
+    (home-page "https://metacpan.org/release/DateTime-Event-Recurrence")
     (synopsis "DateTime::Set extension for basic recurrences")
     (description "This module provides convenience methods that let you easily
 create DateTime::Set objects for various recurrences, such as \"once a month\"
@@ -2323,7 +2321,7 @@ or \"every day\".  You can also create more complicated recurrences, such as
        ("perl-datetime" ,perl-datetime)
        ("perl-datetime-format-strptime" ,perl-datetime-format-strptime)
        ("perl-params-validate" ,perl-params-validate)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-Builder/")
+    (home-page "https://metacpan.org/release/DateTime-Format-Builder")
     (synopsis "Create DateTime parser classes and objects")
     (description "DateTime::Format::Builder creates DateTime parsers.  Many
 string formats of dates and times are simple and just require a basic regular
@@ -2351,7 +2349,7 @@ to do this without writing reams of structural code.")
        ("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-module-pluggable" ,perl-module-pluggable)
        ("perl-test-mocktime" ,perl-test-mocktime)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-Flexible/")
+    (home-page "https://metacpan.org/release/DateTime-Format-Flexible")
     (synopsis "Parse data/time strings")
     (description "DateTime::Format::Flexible attempts to take any string you
 give it and parse it into a DateTime object.")
@@ -2378,7 +2376,7 @@ give it and parse it into a DateTime object.")
        ("perl-datetime-set" ,perl-datetime-set)
        ("perl-datetime-timezone" ,perl-datetime-timezone)
        ("perl-params-validate" ,perl-params-validate)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-ICal/")
+    (home-page "https://metacpan.org/release/DateTime-Format-ICal")
     (synopsis "Parse and format iCal datetime and duration strings")
     (description "This module understands the ICal date/time and duration
 formats, as defined in RFC 2445.  It can be used to parse these formats in
@@ -2411,7 +2409,7 @@ order to create the appropriate objects.")
        ("perl-datetime-timezone" ,perl-datetime-timezone)
        ("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-params-validate" ,perl-params-validate)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-Natural/")
+    (home-page "https://metacpan.org/release/DateTime-Format-Natural")
     (synopsis "Machine-readable date/time with natural parsing")
     (description "DateTime::Format::Natural takes a string with a human
 readable date/time and creates a machine readable one by applying natural
@@ -2439,7 +2437,7 @@ parsing logic.")
        ("perl-params-validate" ,perl-params-validate)
        ("perl-sub-name" ,perl-sub-name)
        ("perl-test-warnings" ,perl-test-warnings)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-Strptime/")
+    (home-page "https://metacpan.org/release/DateTime-Format-Strptime")
     (synopsis "Parse and format strp and strf time patterns")
     (description "This module implements most of `strptime(3)`, the POSIX
 function that is the reverse of `strftime(3)`, for `DateTime`.  While
@@ -2472,7 +2470,7 @@ takes a string and a pattern and returns the `DateTime` object associated.")
     (propagated-inputs
      `(("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-params-validationcompiler" ,perl-params-validationcompiler)))
-    (home-page "http://search.cpan.org/dist/DateTime-Locale/")
+    (home-page "https://metacpan.org/release/DateTime-Locale")
     (synopsis "Localization support for DateTime.pm")
     (description "The DateTime::Locale modules provide localization data for
 the DateTime.pm class.")
@@ -2501,7 +2499,7 @@ the DateTime.pm class.")
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-params-validationcompiler" ,perl-params-validationcompiler)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/DateTime-TimeZone/")
+    (home-page "https://metacpan.org/release/DateTime-TimeZone")
     (synopsis "Time zone object for Perl")
     (description "This class is the base class for all time zone objects.  A
 time zone is represented internally as a set of observances, each of which
@@ -2532,7 +2530,7 @@ DateTime::TimeZone methods.")
        ("perl-datetime-format-ical" ,perl-datetime-format-ical)
        ("perl-datetime-format-natural" ,perl-datetime-format-natural)
        ("perl-timedate" ,perl-timedate)))
-    (home-page "http://search.cpan.org/dist/DateTimeX-Easy/")
+    (home-page "https://metacpan.org/release/DateTimeX-Easy")
     (synopsis "Parse date/time strings")
     (description "DateTimeX::Easy uses a variety of DateTime::Format packages
 to create DateTime objects, with some custom tweaks to smooth out the rough
@@ -2554,7 +2552,7 @@ edges (mainly concerning timezone detection and selection).")
     (inputs
      `(("perl-datetime" ,perl-datetime)
        ("perl-params-validate" ,perl-params-validate)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-Mail/")
+    (home-page "https://metacpan.org/release/DateTime-Format-Mail")
     (synopsis "Convert between DateTime and RFC2822/822 formats")
     (description "RFCs 2822 and 822 specify date formats to be used by email.
 This module parses and emits such dates.")
@@ -2577,7 +2575,7 @@ This module parses and emits such dates.")
     (native-inputs
      `(("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-W3CDTF/")
+    (home-page "https://metacpan.org/release/DateTime-Format-W3CDTF")
     (synopsis "Parse and format W3CDTF datetime strings")
     (description
      "This module understands the W3CDTF date/time format, an ISO 8601 profile,
@@ -2601,7 +2599,7 @@ the appropriate objects.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-padwalker" ,perl-padwalker)))
-    (home-page "http://search.cpan.org/dist/Devel-Caller/")
+    (home-page "https://metacpan.org/release/Devel-Caller")
     (synopsis "Meatier version of caller")
     (description "Devel::Caller provides meatier version of caller.")
     (license (package-license perl))))
@@ -2620,7 +2618,7 @@ the appropriate objects.")
          "0g71sma9jy0fjm619hcrcsb9spg2y03vjxx36y8k1xpa2553sr7m"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Devel-CheckBin/")
+    (home-page "https://metacpan.org/release/Devel-CheckBin")
     (synopsis "Check that a command is available")
     (description "Devel::CheckBin is a perl module that checks whether a
 particular command is available.")
@@ -2640,7 +2638,7 @@ particular command is available.")
   (build-system perl-build-system)
   (native-inputs
    `(("perl-module-build-tiny" ,perl-module-build-tiny)))
-  (home-page "http://search.cpan.org/dist/Devel-CheckCompiler/")
+  (home-page "https://metacpan.org/release/Devel-CheckCompiler")
   (synopsis "Check compiler availability")
   (description "@code{Devel::CheckCompiler} is a tiny module to check
 whether a compiler is available.  It can test for a C99 compiler, or
@@ -2663,7 +2661,7 @@ you can tell it to compile a C source file with optional linker flags.")
          "1hhb77kz3dys8yaik452j22cm3510zald2mpvfyv5clqv326aczx"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Devel-Cycle/")
+     "https://metacpan.org/release/Devel-Cycle")
     (synopsis "Find memory cycles in objects")
     (description
      "@code{Devel::Cycle} This is a tool for finding circular references in
@@ -2686,7 +2684,7 @@ based memory management, circular references will cause memory leaks.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-sub-exporter-progressive" ,perl-sub-exporter-progressive)))
-    (home-page "http://search.cpan.org/dist/Devel-GlobalDestruction/")
+    (home-page "https://metacpan.org/release/Devel-GlobalDestruction")
     (synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
     (description "Devel::GlobalDestruction provides a function returning the
 equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
@@ -2708,7 +2706,7 @@ equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
     (propagated-inputs
      `(("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/Devel-Hide/")
+    (home-page "https://metacpan.org/release/Devel-Hide")
     (synopsis "Forces the unavailability of specified Perl modules (for testing)")
     (description "Given a list of Perl modules/filenames, this module makes
 @code{require} and @code{use} statements fail (no matter whether the specified
@@ -2730,7 +2728,7 @@ files/modules are installed or not).")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-devel-caller" ,perl-devel-caller)))
-    (home-page "http://search.cpan.org/dist/Devel-LexAlias/")
+    (home-page "https://metacpan.org/release/Devel-LexAlias")
     (synopsis "Alias lexical variables")
     (description "Devel::LexAlias provides the ability to alias a lexical
 variable in a subroutines scope to one of your choosing.")
@@ -2755,7 +2753,7 @@ variable in a subroutines scope to one of your choosing.")
      `(("perl-package-stash" ,perl-package-stash)
        ("perl-sub-identify" ,perl-sub-identify)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Devel-OverloadInfo/")
+    (home-page "https://metacpan.org/release/Devel-OverloadInfo")
     (synopsis "Introspect overloaded operators")
     (description "Devel::OverloadInfo returns information about overloaded
 operators for a given class (or object), including where in the inheritance
@@ -2783,7 +2781,7 @@ hierarchy the overloads are declared and where the code implementing it is.")
      `(("perl-class-tiny" ,perl-class-tiny)
        ("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/Devel-PartialDump/")
+    (home-page "https://metacpan.org/release/Devel-PartialDump")
     (synopsis "Partial dumping of data structures")
     (description "This module is a data dumper optimized for logging of
 arbitrary parameters.")
@@ -2802,7 +2800,7 @@ arbitrary parameters.")
         (base32
          "0j58kgjr9s3vibsgifmk9k5h7daag0cb9x45f30m9qi4pr7cs63n"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Devel-StackTrace/")
+    (home-page "https://metacpan.org/release/Devel-StackTrace")
     (synopsis "Object representing a stack trace")
     (description "The Devel::StackTrace module contains two classes,
 Devel::StackTrace and Devel::StackTrace::Frame.  These objects encapsulate the
@@ -2825,7 +2823,7 @@ providing a simple interface to this data.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-devel-stacktrace" ,perl-devel-stacktrace)))
-    (home-page "http://search.cpan.org/dist/Devel-StackTrace-AsHTML/")
+    (home-page "https://metacpan.org/release/Devel-StackTrace-AsHTML")
     (synopsis "Displays stack trace in HTML")
     (description "Devel::StackTrace::AsHTML adds as_html method to
 Devel::StackTrace which displays the stack trace in beautiful HTML, with code
@@ -2847,7 +2845,7 @@ each stack frame.")
         (base32
          "1h3n0w23camhj20a97nw7v40rqa7xcxx8vkn2qjjlngm0yhq2vw2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Devel-Symdump/")
+    (home-page "https://metacpan.org/release/Devel-Symdump")
     (synopsis "Dump symbol names or the symbol table")
     (description "Devel::Symdump provides access to the perl symbol table.")
     (license (package-license perl))))
@@ -2865,7 +2863,7 @@ each stack frame.")
         (base32
          "0naavabbm1c9zgn325ndy66da4insdw9l3mrxwxdfi7i7xnjrirv"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Digest-HMAC/")
+    (home-page "https://metacpan.org/release/Digest-HMAC")
     (synopsis "Keyed-Hashing for Message Authentication")
     (description "The Digest::HMAC module follows the common Digest::
 interface for the RFC 2104 HMAC mechanism.")
@@ -2891,7 +2889,7 @@ interface for the RFC 2104 HMAC mechanism.")
            (lambda _
              ;; Make MD5.so read-write so it can be stripped.
              (chmod "blib/arch/auto/Digest/MD5/MD5.so" #o755))))))
-    (home-page "http://search.cpan.org/dist/Digest-MD5/")
+    (home-page "https://metacpan.org/release/Digest-MD5")
     (synopsis "Perl interface to the MD-5 algorithm")
     (description
      "The @code{Digest::MD5} module allows you to use the MD5 Message Digest
@@ -2916,8 +2914,7 @@ input a message of arbitrary length and produces as output a
     (description
      "This package provides 'Digest::SHA1', an implementation of the NIST
 SHA-1 message digest algorithm for use by Perl programs.")
-    (home-page (string-append "http://search.cpan.org/~gaas/Digest-SHA1-"
-                              version "/SHA1.pm"))
+    (home-page "https://metacpan.org/release/Digest-SHA1")
     (license (package-license perl))))
 
 (define-public perl-dist-checkconflicts
@@ -2935,7 +2932,7 @@ SHA-1 message digest algorithm for use by Perl programs.")
     (native-inputs `(("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-module-runtime" ,perl-module-runtime)))
-    (home-page "http://search.cpan.org/dist/Dist-CheckConflicts/")
+    (home-page "https://metacpan.org/release/Dist-CheckConflicts")
     (synopsis "Declare version conflicts for your dist")
     (description "This module allows you to specify conflicting versions of
 modules separately and deal with them after the module is done installing.")
@@ -2956,7 +2953,7 @@ modules separately and deal with them after the module is done installing.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Encode-Detect/")
+    (home-page "https://metacpan.org/release/Encode-Detect")
     (synopsis "Detect the encoding of data")
     (description "This package provides a class @code{Encode::Detect} to detect
 the encoding of data.")
@@ -2975,7 +2972,7 @@ the encoding of data.")
         (base32
          "0qg8kmi7r9jcf8326b4fyq5sdpqyim2a11h7j77q577xam6x767r"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Encode-EUCJPASCII/")
+    (home-page "https://metacpan.org/release/Encode-EUCJPASCII")
     (synopsis "ASCII mapping for eucJP encoding")
     (description "This package provides an ASCII mapping for the eucJP
 encoding.")
@@ -2994,7 +2991,7 @@ encoding.")
         (base32
          "1k1mdj4rd9m1z4h7qd2dl92ky0r1rk7mmagwsvdb9pirvdr4vj0y"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Encode-JIS2K/")
+    (home-page "https://metacpan.org/release/Encode-JIS2K")
     (synopsis "JIS X 0212 (aka JIS 2000) encodings")
     (description "This package provides encodings for JIS X 0212, which is
 also known as JIS 2000.")
@@ -3018,7 +3015,7 @@ also known as JIS 2000.")
        (modify-phases %standard-phases
          (add-after 'unpack 'set-env
            (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
-    (home-page "http://search.cpan.org/dist/Encode-HanExtra/")
+    (home-page "https://metacpan.org/release/Encode-HanExtra")
     (synopsis "Additional Chinese encodings")
     (description "This Perl module provides Chinese encodings that are not
 part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",
@@ -3041,7 +3038,7 @@ part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",
         (base32
          "1qhmj15a66h90pjl2dgnxsb9jj3b1r5mpvnr87cafcl8g69z0jr4"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Env-Path/")
+    (home-page "https://metacpan.org/release/Env-Path")
     (synopsis "Advanced operations on path variables")
     (description "@code{Env::Path} presents an object-oriented interface to
 path variables, defined as that subclass of environment variables which name
@@ -3062,7 +3059,7 @@ separator.")
                 "1bzgzmf1v4md02vadm46b4j4ilqxrcrfasvbzymhrznlsd54g7vc"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Error/")
+    (home-page "https://metacpan.org/release/Error")
     (synopsis "OO-ish Error/Exception handling for Perl")
     (description "The Error package provides two interfaces.  Firstly Error
 provides a procedural interface to exception handling.  Secondly Error is a
@@ -3088,7 +3085,7 @@ catch, or can simply be recorded.")
        ("perl-test-requires" ,perl-test-requires)))
     (propagated-inputs
      `(("perl-devel-lexalias" ,perl-devel-lexalias)))
-    (home-page "http://search.cpan.org/dist/Eval-Closure/")
+    (home-page "https://metacpan.org/release/Eval-Closure")
     (synopsis "Safely and cleanly create closures via string eval")
     (description "String eval is often used for dynamic code generation.  For
 instance, Moose uses it heavily, to generate inlined versions of accessors and
@@ -3118,7 +3115,7 @@ errors are rethrown automatically.")
     (propagated-inputs
      `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
        ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
-    (home-page "http://search.cpan.org/dist/Exception-Class/")
+    (home-page "https://metacpan.org/release/Exception-Class")
     (synopsis "Allows you to declare real exception classes in Perl")
     (description "Exception::Class allows you to declare exception hierarchies
 in your modules in a \"Java-esque\" manner.")
@@ -3141,7 +3138,7 @@ in your modules in a \"Java-esque\" manner.")
      "Exporter::Lite is an alternative to Exporter, intended to provide a
 lightweight subset of the most commonly-used functionality.  It supports
 import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
-    (home-page "http://search.cpan.org/dist/Exporter-Lite/")
+    (home-page "https://metacpan.org/release/Exporter-Lite")
     (license (package-license perl))))
 
 (define-public perl-exporter-tiny
@@ -3157,7 +3154,7 @@ import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
         (base32
          "0gq2ia8c6n84gdrlc73vab61djs8gs8zf7fqx8cxbg5zxg2j45lg"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Exporter-Tiny/")
+    (home-page "https://metacpan.org/release/Exporter-Tiny")
     (synopsis "Exporter with the features of Sub::Exporter but only core dependencies")
     (description "Exporter::Tiny supports many of Sub::Exporter's
 external-facing features including renaming imported functions with the `-as`,
@@ -3181,7 +3178,7 @@ only about 40% as many lines of code and with zero non-core dependencies.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-extutils-config" ,perl-extutils-config)))
-    (home-page "http://search.cpan.org/dist/ExtUtils-InstallPaths/")
+    (home-page "https://metacpan.org/release/ExtUtils-InstallPaths")
     (synopsis "Build.PL install path logic made easy")
     (description "This module tries to make install path resolution as easy as
 possible.")
@@ -3200,7 +3197,7 @@ possible.")
         (base32
          "130s5zk4krrymbynqxx62g13jynnb7xi7vdpg65cw3b56kv08ldf"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/ExtUtils-Config/")
+    (home-page "https://metacpan.org/release/ExtUtils-Config")
     (synopsis "Wrapper for perl's configuration")
     (description "ExtUtils::Config is an abstraction around the %Config hash.
 By itself it is not a particularly interesting module by any measure, however
@@ -3221,7 +3218,7 @@ it ties together a family of modern toolchain modules.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-number-delta" ,perl-test-number-delta)))
-    (home-page "http://search.cpan.org/dist/ExtUtils-Depends/")
+    (home-page "https://metacpan.org/release/ExtUtils-Depends")
     (synopsis "Easily build XS extensions that depend on XS extensions")
     (description
      "This module tries to make it easy to build Perl extensions that use
@@ -3243,7 +3240,7 @@ XS interface besides the perl one.")
         (base32
          "15dalfwmpfmifw312i5pwiai8134pxf7b2804shlqhdk1xqczy6k"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/ExtUtils-Helpers/")
+    (home-page "https://metacpan.org/release/ExtUtils-Helpers")
     (synopsis "Various portability utilities for module builders")
     (description "This module provides various portable helper functions for
 module building modules.")
@@ -3264,7 +3261,7 @@ module building modules.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/ExtUtils-LibBuilder/")
+    (home-page "https://metacpan.org/release/ExtUtils-LibBuilder")
     (synopsis "Tool to build C libraries")
     (description "Some Perl modules need to ship C libraries together with
 their Perl code.  Although there are mechanisms to compile and link (or glue)
@@ -3286,7 +3283,7 @@ self-contained C libraries.  This module main goal is to help in that task.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://search.cpan.org/dist/ExtUtils-PkgConfig/")
+    (home-page "https://metacpan.org/release/ExtUtils-PkgConfig")
     (synopsis "Simplistic interface to pkg-config")
     (description
      "@code{ExtUtils::PkgConfig} is a very simplistic interface to the
@@ -3320,7 +3317,7 @@ It is really just boilerplate code that you would have written yourself.")
        ("perl-moosex-semiaffordanceaccessor"
         ,perl-moosex-semiaffordanceaccessor)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/File-ChangeNotify/")
+    (home-page "https://metacpan.org/release/File-ChangeNotify")
     (synopsis "Watch for changes to files")
     (description "This module provides a class to monitor a directory for
 changes made to any file.")
@@ -3342,7 +3339,7 @@ changes made to any file.")
     (propagated-inputs
      `(("perl-file-homedir" ,perl-file-homedir)
        ("perl-list-moreutils" ,perl-list-moreutils)))
-    (home-page "http://search.cpan.org/dist/File-ConfigDir/")
+    (home-page "https://metacpan.org/release/File-ConfigDir")
     (synopsis "Get directories of configuration files")
     (description "This module is a helper for installing, reading and finding
 configuration file locations.  @code{File::ConfigDir} is a module to help out
@@ -3363,7 +3360,7 @@ configuration files from more than one location.")
         (base32
          "1syyyvylr51iicialdmv0dw06q49xzv8zrkb5cn8ma4l73gvvk44"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Copy-Recursive/")
+    (home-page "https://metacpan.org/release/File-Copy-Recursive")
     (synopsis "Recursively copy files and directories")
     (description "This module has 3 functions: one to copy files only, one to
 copy directories only, and one to do either depending on the argument's
@@ -3386,7 +3383,7 @@ type.")
     (propagated-inputs
      `(("perl-text-glob" ,perl-text-glob)
        ("perl-number-compare" ,perl-number-compare)))
-    (home-page "http://search.cpan.org/dist/File-Find-Rule/")
+    (home-page "https://metacpan.org/release/File-Find-Rule")
     (synopsis "Alternative interface to File::Find")
     (description "File::Find::Rule is a friendlier interface to File::Find.
 It allows you to build rules which specify the desired files and
@@ -3410,7 +3407,7 @@ directories.")
      `(("perl-file-find-rule" ,perl-file-find-rule)
        ("perl-params-util" ,perl-params-util)
        ("perl-parse-cpan-meta" ,perl-parse-cpan-meta)))
-    (home-page "http://search.cpan.org/dist/File-Find-Rule-Perl/")
+    (home-page "https://metacpan.org/release/File-Find-Rule-Perl")
     (synopsis "Common rules for searching for Perl things")
     (description "File::Find::Rule::Perl provides methods for finding various
 types Perl-related files, or replicating search queries run on a distribution
@@ -3432,7 +3429,7 @@ in various parts of the CPAN ecosystem.")
         (base32
          "0cjnz3ak7s3x3y3q48xb9ka2q9d7xvch58vy80hqa9xn9qkiabj6"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Grep/")
+    (home-page "https://metacpan.org/release/File-Grep")
     (synopsis "Matches patterns in a series of files")
     (description "@code{File::Grep} provides similar functionality as perl's
 builtin @code{grep}, @code{map}, and @code{foreach} commands, but iterating
@@ -3456,7 +3453,7 @@ provide a quick dropin when such functionality is needed.")
     (propagated-inputs
      `(("perl-file-which" ,perl-file-which)))
     (arguments `(#:tests? #f))          ;Not appropriate for chroot
-    (home-page "http://search.cpan.org/dist/File-HomeDir/")
+    (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
@@ -3479,7 +3476,7 @@ platforms.")
         (base32
          "039gc0i5cbdmidl8j8x195yykwcdmzwawmpapnysvljl8l33jqwj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Path/")
+    (home-page "https://metacpan.org/release/File-Path")
     (synopsis "Create or remove directory trees")
     (description "This module provide a convenient way to create directories
 of arbitrary depth and to delete an entire directory subtree from the
@@ -3502,7 +3499,7 @@ file system.")
          "1p3wz5jnddd87wkwl4x3fc3ncprahdxdzwqd4scb10r98h4pyfnp"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/File-pushd/")
+     "https://metacpan.org/release/File-pushd")
     (synopsis
      "Change directory temporarily for a limited scope")
     (description "@code{File::pushd} does a temporary @code{chdir} that is
@@ -3539,7 +3536,7 @@ lists of files")
      "The File::List module crawls the directory tree starting at the
 provided base directory and can return files (and/or directories if desired)
 matching a regular expression.")
-    (home-page "http://search.cpan.org/~dopacki/File-List//")))
+    (home-page "https://metacpan.org/release/File-List")))
 
 (define-public perl-file-readbackwards
   (package
@@ -3556,7 +3553,7 @@ matching a regular expression.")
         (base32
          "0vldy5q0zyf1cwzwb1gv14f8vg2f21bw96b8wvkw6z2hhypn3cl2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-ReadBackwards/")
+    (home-page "https://metacpan.org/release/File-ReadBackwards")
     (synopsis "Read a file backwards by lines")
     (description "This module reads a file backwards line by line. It is
 simple to use, memory efficient and fast.  It supports both an object and a
@@ -3581,7 +3578,7 @@ the input record separator string on a per file basis.")
         (base32
          "1b814lw181kkqh6c1n4p2zlzzsq6ic5pfpr831nphf2w2rhcvgmk"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Remove/")
+    (home-page "https://metacpan.org/release/File-Remove")
     (synopsis "Remove files and directories in Perl")
     (description "File::Remove::remove removes files and directories.  It acts
 like /bin/rm, for the most part.  Although \"unlink\" can be given a list of
@@ -3606,7 +3603,7 @@ accepts wildcards, * and ?, as arguments for file names.")
      `(("perl-file-sharedir-install" ,perl-file-sharedir-install)))
     (propagated-inputs
      `(("perl-class-inspector" ,perl-class-inspector)))
-    (home-page "http://search.cpan.org/dist/File-ShareDir/")
+    (home-page "https://metacpan.org/release/File-ShareDir")
     (synopsis "Locate per-dist and per-module shared files")
     (description "The intent of File::ShareDir is to provide a companion to
 Class::Inspector and File::HomeDir.  Quite often you want or need your Perl
@@ -3629,7 +3626,7 @@ the installation.")
         (base32
          "1xkmrckp1qfi9ik098n2vz0r8g7wfwp2y05zjd100w6wcqwfzcpn"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-ShareDir-Dist/")
+    (home-page "https://metacpan.org/release/File-ShareDir-Dist")
     (synopsis "Locate per-dist shared files")
     (description "File::ShareDir::Dist finds share directories for
 distributions.  It is a companion module to File::ShareDir.")
@@ -3650,7 +3647,7 @@ distributions.  It is a companion module to File::ShareDir.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/File-ShareDir-Install/")
+    (home-page "https://metacpan.org/release/File-ShareDir-Install")
     (synopsis "Install shared files")
     (description "File::ShareDir::Install allows you to install read-only data
 files from a distribution.  It is a companion module to File::ShareDir, which
@@ -3670,7 +3667,7 @@ allows you to locate these files after installation.")
         (base32
          "0hrn4nipwx40d6ji8ssgr5nw986z9iqq8cn0kdpbszh9jplynaff"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Slurp/")
+    (home-page "https://metacpan.org/release/File-Slurp")
     (synopsis "Reading/Writing/Modifying of complete files")
     (description "File::Slurp provides subroutines to read or write entire
 files with a simple call.  It also has a subroutine for reading the list of
@@ -3694,7 +3691,7 @@ file names in a directory.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)))
-    (home-page "http://search.cpan.org/dist/File-Slurper/")
+    (home-page "https://metacpan.org/release/File-Slurper")
     (synopsis "Simple, sane and efficient module to slurp a file")
     (description "This module provides functions for fast and correct file
 slurping and spewing.  All functions are optionally exported.")
@@ -3712,7 +3709,7 @@ slurping and spewing.  All functions are optionally exported.")
                (base32
                 "07kzfmibl43dq4c803f022g2rcfv4nkjgipxclz943mzxaz9aaa5"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/File-Slurp-Tiny/")
+    (home-page "https://metacpan.org/release/File-Slurp-Tiny")
     (synopsis "Simple file reader and writer")
     (description
      "This module provides functions for fast reading and writing of files.")
@@ -3733,7 +3730,7 @@ slurping and spewing.  All functions are optionally exported.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-parent" ,perl-parent)))
-    (home-page "http://search.cpan.org/dist/File-Temp/")
+    (home-page "https://metacpan.org/release/File-Temp")
     (synopsis "Return name and handle of a temporary file safely")
     (description "File::Temp can be used to create and open temporary files in
 a safe way.")
@@ -3757,8 +3754,7 @@ a safe way.")
      "File::Which was created to be able to get the paths to executable
 programs on systems under which the `which' program wasn't implemented in the
 shell.")
-    (home-page (string-append "http://search.cpan.org/~adamk//"
-                              "File-Which-" version))
+    (home-page "https://metacpan.org/release/ADAMK/File-Which-1.09")
     (license (package-license perl))))
 
 (define-public perl-file-zglob
@@ -3776,7 +3772,7 @@ shell.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/File-Zglob/")
+    (home-page "https://metacpan.org/release/File-Zglob")
     (synopsis "Extended Unix style glob functionality")
     (description "@code{File::Zglob} provides a traditional Unix @code{glob}
 functionality; it returns a list of file names that match the given pattern.
@@ -3796,7 +3792,7 @@ For instance, it supports the @code{**/*.pm} form.")
         (base32
          "0bw8gbhj8s5gmkqvs3m7pk9arqhgqssrby4yimh29ah9alix9ylq"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Getopt-Long/")
+    (home-page "https://metacpan.org/release/Getopt-Long")
     (synopsis "Module to handle parsing command line options")
     (description "The @code{Getopt::Long} module implements an extended getopt
 function called @code{GetOptions()}.  It parses the command line from
@@ -3831,7 +3827,7 @@ single-letter approach, is provided but not enabled by default.")
     (propagated-inputs
      `(("perl-params-validate" ,perl-params-validate)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Getopt-Long-Descriptive/")
+    (home-page "https://metacpan.org/release/Getopt-Long-Descriptive")
     (synopsis "Getopt::Long, but simpler and more powerful")
     (description "Getopt::Long::Descriptive is yet another Getopt library.
 It's built atop Getopt::Long, and gets a lot of its features, but tries to
@@ -3855,8 +3851,7 @@ usage (help) messages, data validation, and a few other useful features.")
     (description
      "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,
 vaguely inspired by John Ousterhout's Tk_ParseArgv.")
-    (home-page (string-append "http://search.cpan.org/~gward//"
-                              "Getopt-Tabular-" version))
+    (home-page "https://metacpan.org/release/Getopt-Tabular")
     (license (package-license perl))))
 
 (define-public perl-graph
@@ -3874,7 +3869,7 @@ vaguely inspired by John Ousterhout's Tk_ParseArgv.")
         (base32
          "099a1gca0wj5zs0cffncjqp2mjrdlk9i6325ks89ml72gfq8wpij"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Graph/")
+    (home-page "https://metacpan.org/release/Graph")
     (synopsis "Graph data structures and algorithms")
     (description "This is @code{Graph}, a Perl module for dealing with graphs,
 the abstract data structures.")
@@ -3892,7 +3887,7 @@ the abstract data structures.")
                (base32
                 "1p6i9mfmbs9cw40jqdv71ihv2xfi0vvlv8bdv2810gf93zwxvi1l"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Guard/")
+    (home-page "https://metacpan.org/release/Guard")
     (synopsis "Safe cleanup blocks implemented as guards")
     (description "@code{Guard} implements so-called @dfn{guards}.  A guard is
 something (usually an object) that \"guards\" a resource, ensuring that it is
@@ -3929,7 +3924,7 @@ which are tied to the scope exit.")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-leaktrace" ,perl-test-leaktrace)))
-    (home-page "http://search.cpan.org/dist/Hash-FieldHash/")
+    (home-page "https://metacpan.org/release/Hash-FieldHash")
     (synopsis "Lightweight field hash for inside-out objects")
     (description "@code{Hash::FieldHash} provides the field hash mechanism
 which supports the inside-out technique.  It is an alternative to
@@ -3950,7 +3945,7 @@ relic support.")
         (base32
          "0r1a2axz85wn6573zrl9rk8mkfl2cvf1gp9vwya5qndp60rz1ya7"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Hash-Merge/")
+    (home-page "https://metacpan.org/release/Hash-Merge")
     (synopsis "Merge arbitrarily deep hashes into a single hash")
     (description "Hash::Merge merges two arbitrarily deep hashes into a single
 hash.  That is, at any level, it will add non-conflicting key-value pairs from
@@ -3973,7 +3968,7 @@ merged.")
         (base32
          "1x3k7h542xnigz0b8vsfiq580p5r325wi5b8mxppiqk8mbvis636"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Hash-MultiValue/")
+    (home-page "https://metacpan.org/release/Hash-MultiValue")
     (synopsis "Store multiple values per key")
     (description "Hash::MultiValue is an object (and a plain hash reference)
 that may contain multiple values per key, inspired by MultiDict of WebOb.")
@@ -3992,7 +3987,7 @@ that may contain multiple values per key, inspired by MultiDict of WebOb.")
          (base32
           "0iirw6csfbycr6z5s6lgd1zdqdjhb436zcxy1hyh6x3x92616i87"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Importer//")
+    (home-page "https://metacpan.org/release/Importer")
     (synopsis "Alternative but compatible interface to modules that export symbols")
     (description "This module acts as a layer between Exporter and modules which
 consume exports.  It is feature-compatible with Exporter, plus some much needed
@@ -4017,7 +4012,7 @@ variables.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-module-runtime" ,perl-module-runtime)))
-    (home-page "http://search.cpan.org/dist/Import-Into/")
+    (home-page "https://metacpan.org/release/Import-Into")
     (synopsis "Import packages into other packages")
     (description "Writing exporters is a pain.  Some use Exporter, some use
 Sub::Exporter, some use Moose::Exporter, some use Exporter::Declare ... and
@@ -4040,7 +4035,7 @@ compilation.  Import::Into provides global methods to make this painless.")
         (base32
          "04f6qf6ll2hkdsr9aglykg3wlgsnf0w4f264nzg4i9y6cgrhbafs"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/inc-latest/")
+    (home-page "https://metacpan.org/release/inc-latest")
     (synopsis "Use modules in inc/ if newer than installed")
     (description "The inc::latest module helps bootstrap configure-time
 dependencies for CPAN distributions.  These dependencies get bundled into the
@@ -4061,7 +4056,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
         (base32
          "13k5a8p903m8x3pcv9qqkzvnb8gpgq36cr3dvn3lk1ngsi9w5ydy"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/indirect/")
+    (home-page "https://metacpan.org/release/indirect")
     (synopsis "Lexically warn about using the indirect method call syntax")
     (description
      "Indirect warns about using the indirect method call syntax.")
@@ -4083,7 +4078,7 @@ inc directory within a distribution and are used by Makefile.PL or Build.PL.")
    (build-system perl-build-system)
    (native-inputs
     `(("perl-test-warn" ,perl-test-warn)))
-   (home-page "http://search.cpan.org/dist/Inline/")
+   (home-page "https://metacpan.org/release/Inline")
    (synopsis "Write Perl subroutines in other programming languages")
    (description "The @code{Inline} module allows you to put source code
 from other programming languages directly (inline) in a Perl script or
@@ -4114,7 +4109,7 @@ for immediate access from Perl.")
      `(("perl-inline" ,perl-inline)
        ("perl-parse-recdescent" ,perl-parse-recdescent)
        ("perl-pegex" ,perl-pegex)))
-    (home-page "http://search.cpan.org/dist/Inline-C/")
+    (home-page "https://metacpan.org/release/Inline-C")
     (synopsis "C Language Support for Inline")
     (description "The @code{Inline::C} module allows you to write Perl
 subroutines in C.  Since version 0.30 the @code{Inline} module supports
@@ -4141,7 +4136,7 @@ It also goes a bit into Perl C internals.")
     (propagated-inputs
      `(("perl-file-mimeinfo" ,perl-file-mimeinfo)
        ("perl-file-readbackwards" ,perl-file-readbackwards)))
-    (home-page "http://search.cpan.org/dist/IO-All/")
+    (home-page "https://metacpan.org/release/IO-All")
     (synopsis "@code{IO::All} to Larry Wall!")
     (description "@code{IO::All} combines all of the best Perl IO modules into
 a single nifty object oriented interface to greatly simplify your everyday
@@ -4164,7 +4159,7 @@ Perl IO idioms.  It exports a single function called io, which returns a new
         (base32
          "0c437zvzpqi8f0h3nmblwdi2bvsb92b7g30fndr7my9qnky35izw"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IO-CaptureOutput/")
+    (home-page "https://metacpan.org/release/IO-CaptureOutput")
     (synopsis "Capture STDOUT and STDERR from Perl code, subprocesses or XS")
     (description "@code{IO::CaptureOutput} provides routines for capturing
 @code{STDOUT} and @code{STDERR} from perl subroutines, forked system
@@ -4187,7 +4182,7 @@ try @code{Capture::Tiny} instead.")
         (base32
          "1303q6rbcf2cag5z08pq3d1y91wls5q51jrpw4kh0l2bv75idh4w"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IO-Interactive/")
+    (home-page "https://metacpan.org/release/IO-Interactive")
     (synopsis "Utilities for interactive I/O")
     (description "This module provides three utility subroutines that make it
 easier to develop interactive applications: is_interactive(), interactive(),
@@ -4207,7 +4202,7 @@ and busy().")
         (base32
          "18755m410yl70s17rgq3m0hyxl8r5mr47vsq1rw7141d8kc4lgra"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/~gaas/IO-String-1.08//")
+    (home-page "https://metacpan.org/release/IO-String")
     (synopsis "Emulate file interface for in-core strings")
     (description "IO::String is an IO::File (and IO::Handle) compatible class
 that reads or writes data from in-core strings.")
@@ -4226,7 +4221,7 @@ that reads or writes data from in-core strings.")
         (base32
          "178rpx0ym5l2m9mdmpnr92ziscvchm541w94fd7ygi6311kgsrwc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IO-stringy/")
+    (home-page "https://metacpan.org/release/IO-stringy")
     (synopsis "IO:: interface for reading/writing an array of lines")
     (description "This toolkit primarily provides modules for performing both
 traditional and object-oriented i/o) on things *other* than normal
@@ -4245,7 +4240,7 @@ filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines.")
                (base32
                 "0399anjy3bc0w8xzsc3qx5vcyqryc9gc52lc7wh7i49hsdq8gvx2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/~toddr/IO-Tty//")
+    (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
@@ -4265,7 +4260,7 @@ pseudo ttys.")
         (base32
          "0a2v44x70gj9fd5wa8i08f9z6n14qppj1j49m1hc333wh72mzk6i"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IPC-Cmd/")
+    (home-page "https://metacpan.org/release/IPC-Cmd")
     (synopsis "Run interactive command-line programs")
     (description "@code{IPC::Cmd} allows for the searching and execution of
 any binary on your system.  It adheres to verbosity settings and is able to
@@ -4295,7 +4290,7 @@ run interactively.  It also has an option to capture output/error buffers.")
                      ;; This test fails, and we're not really interested in
                      ;; it, so disable it.
                      (delete-file "t/win32_compile.t"))))))
-    (home-page "http://search.cpan.org/dist/IPC-Run/")
+    (home-page "https://metacpan.org/release/IPC-Run")
     (synopsis "Run system() and background procs w/ piping, redirs, ptys")
     (description "IPC::Run allows you run and interact with child processes
 using files, pipes, and pseudo-ttys.  Both system()-style and scripted usages
@@ -4321,8 +4316,7 @@ both supported and may be mixed.")
 stdout, and/or stderr to files and perl data structures.  It aims to satisfy
 99% of the need for using system, qx, and open3 with a simple, extremely
 Perlish API and none of the bloat and rarely used features of IPC::Run.")
-    (home-page (string-append "http://search.cpan.org/~rjbs//"
-                              "IPC-Run3-" version))
+    (home-page "https://metacpan.org/release/IPC-Run3")
     ;; "You may use this module under the terms of the BSD, Artistic, or GPL
     ;; licenses, any version."
     (license (list bsd-3 gpl3+))))
@@ -4340,7 +4334,7 @@ Perlish API and none of the bloat and rarely used features of IPC::Run.")
         (base32
          "1gz7dbwxrzbzdsjv11kb49jlf9q6lci2va6is0hnavd93nwhdm0l"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IPC-ShareLite/")
+    (home-page "https://metacpan.org/release/IPC-ShareLite")
     (synopsis "Lightweight interface to shared memory")
     (description "IPC::ShareLite provides a simple interface to shared memory,
 allowing data to be efficiently communicated between processes.")
@@ -4359,7 +4353,7 @@ allowing data to be efficiently communicated between processes.")
                (base32
                 "0fsdb81shjj4hifyyzvj7vpkhq5jrfhlcpw2xbjfi1mqz8fsmdpi"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/IPC-System-Simple/")
+    (home-page "https://metacpan.org/release/IPC-System-Simple")
     (synopsis "Run commands simply, with detailed diagnostics")
     (description "Calling Perl's in-built @code{system} function is easy,
 determining if it was successful is hard.  Let's face it, @code{$?} isn't the
@@ -4385,7 +4379,7 @@ commands.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-json-xs" ,perl-json-xs))) ;recommended
-    (home-page "http://search.cpan.org/dist/JSON/")
+    (home-page "https://metacpan.org/release/JSON")
     (synopsis "JSON encoder/decoder for Perl")
     (description "This module converts Perl data structures to JSON and vice
 versa using either JSON::XS or JSON::PP.")
@@ -4411,7 +4405,7 @@ versa using either JSON::XS or JSON::PP.")
        ("perl-test-without-module" ,perl-test-without-module)))
     (propagated-inputs
      `(("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/JSON-Any/")
+    (home-page "https://metacpan.org/release/JSON-Any")
     (synopsis "Wrapper for Perl JSON classes")
     (description
      "This module tries to provide a coherent API to bring together the
@@ -4437,7 +4431,7 @@ installed.")
      `(("perl-test-without-module" ,perl-test-without-module)))
     (inputs
      `(("perl-cpanel-json-xs" ,perl-cpanel-json-xs)))
-    (home-page "http://search.cpan.org/dist/JSON-MaybeXS/")
+    (home-page "https://metacpan.org/release/JSON-MaybeXS")
     (synopsis "Cpanel::JSON::XS with fallback")
     (description "This module first checks to see if either Cpanel::JSON::XS
 or JSON::XS is already loaded, in which case it uses that module.  Otherwise
@@ -4461,7 +4455,7 @@ either uses the first module it finds or throws an error.")
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)
        ("perl-types-serialiser" ,perl-types-serialiser)))
-    (home-page "http://search.cpan.org/dist/JSON-XS/")
+    (home-page "https://metacpan.org/release/JSON-XS")
     (synopsis "JSON serialising/deserialising for Perl")
     (description "This module converts Perl data structures to JSON and vice
 versa.")
@@ -4484,7 +4478,7 @@ versa.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Lexical-SealRequireHints/")
+    (home-page "https://metacpan.org/release/Lexical-SealRequireHints")
     (synopsis "Prevent leakage of lexical hints")
     (description
      "Lexical::SealRequireHints prevents leakage of lexical hints")
@@ -4503,7 +4497,7 @@ versa.")
         (base32
          "0r1q7cclgwl24gzdnjzvd8y0r7j17dngjk492x35w198zhdj2ncp"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Log-Any/")
+    (home-page "https://metacpan.org/release/Log-Any")
     (synopsis "Bringing loggers and listeners together")
     (description "@code{Log::Any} provides a standard log production API for
 modules.  @code{Log::Any::Adapter} allows applications to choose the mechanism
@@ -4540,7 +4534,7 @@ logging mechanism.")
      `(("perl-log-any" ,perl-log-any)
        ("perl-log-log4perl" ,perl-log-log4perl)))
     (home-page
-     "http://search.cpan.org/dist/Log-Any-Adapter-Log4perl/")
+     "https://metacpan.org/release/Log-Any-Adapter-Log4perl")
     (synopsis "Log::Any adapter for Log::Log4perl")
     (description "@code{Log::Any::Adapter::Log4perl} provides a
 @code{Log::Any} adapter using @code{Log::Log4perl} for logging.")
@@ -4562,7 +4556,7 @@ logging mechanism.")
          "05ifhx1lmv91dbs9ck2zbjrkhh8z9g32gi6gxdmwnilia5zihfdp"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Log-Log4perl/")
+     "https://metacpan.org/release/Log-Log4perl")
     (synopsis "Log4j implementation for Perl")
     (description "@code{Log::Log4perl} lets you remote-control and fine-tune
 the logging behaviour of your system from the outside.  It implements the
@@ -4583,7 +4577,7 @@ widely popular (Java-based) Log4j logging package in pure Perl.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-string-print" ,perl-string-print)))
-    (home-page "http://search.cpan.org/dist/Log-Report-Optional/")
+    (home-page "https://metacpan.org/release/Log-Report-Optional")
     (synopsis "Log::Report in the lightest form")
     (description
      "This module allows libraries to have a dependency to a small module
@@ -4610,7 +4604,7 @@ version.")
      `(("perl-devel-globaldestruction" ,perl-devel-globaldestruction)
        ("perl-log-report-optional" ,perl-log-report-optional)
        ("perl-string-print" ,perl-string-print)))
-    (home-page "http://search.cpan.org/dist/Log-Report/")
+    (home-page "https://metacpan.org/release/Log-Report")
     (synopsis "Get messages to users and logs")
     (description
      "@code{Log::Report} combines three tasks which are closely related in
@@ -4641,7 +4635,7 @@ one: logging, exceptions, and translations.")
              #t)))))
     (propagated-inputs
      `(("perl-file-sharedir" ,perl-file-sharedir)))
-    (home-page "http://search.cpan.org/dist/libintl-perl/")
+    (home-page "https://metacpan.org/release/libintl-perl")
     (synopsis "High-level interface to Uniforum message translation")
     (description "This package is an internationalization library for Perl
 that aims to be compatible with the Uniforum message translations system as
@@ -4661,7 +4655,7 @@ implemented for example in GNU gettext.")
         (base32
          "161589h08kzliga17i2g0hb0yn4cjmb8rdiyadq5bw97974bac14"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Lingua-Translit/")
+    (home-page "https://metacpan.org/release/Lingua-Translit")
     (synopsis "Transliterate text between writing systems")
     (description "@code{Lingua::Translit} can be used to convert text from one
 writing system to another, based on national or international transliteration
@@ -4686,7 +4680,7 @@ tables.  Where possible a reverse transliteration is supported.")
     (propagated-inputs
      `(("perl-list-moreutils" ,perl-list-moreutils)
        ("perl-scalar-list-utils" ,perl-scalar-list-utils)))
-    (home-page "http://search.cpan.org/dist/List-AllUtils/")
+    (home-page "https://metacpan.org/release/List-AllUtils")
     (synopsis "Combination of List::Util and List::MoreUtils")
     (description "This module exports all of the functions that either
 List::Util or List::MoreUtils defines, with preference to List::Util.")
@@ -4709,7 +4703,7 @@ List::Util or List::MoreUtils defines, with preference to List::Util.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-io-captureoutput" ,perl-io-captureoutput)))
-    (home-page "http://search.cpan.org/dist/List-Compare/")
+    (home-page "https://metacpan.org/release/List-Compare")
     (synopsis "Compare elements of two or more lists")
     (description "@code{List::Compare} provides a module to perform
 comparative operations on two or more lists.  Provided operations include
@@ -4745,7 +4739,7 @@ intersections, unions, unique elements, complements and many more.")
     (propagated-inputs
      `(("perl-exporter-tiny" ,perl-exporter-tiny)
        ("perl-list-moreutils-xs" ,perl-list-moreutils-xs)))
-    (home-page "http://search.cpan.org/dist/List-MoreUtils/")
+    (home-page "https://metacpan.org/release/List-MoreUtils")
     (synopsis "Provide the stuff missing in List::Util")
     (description "List::MoreUtils provides some trivial but commonly needed
 functionality on lists which is not going to go into List::Util.")
@@ -4768,7 +4762,7 @@ functionality on lists which is not going to go into List::Util.")
      `(("perl-config-autoconf" ,perl-config-autoconf)
        ("perl-inc-latest" ,perl-inc-latest)
        ("perl-test-leaktrace" ,perl-test-leaktrace)))
-    (home-page "http://search.cpan.org/dist/List-MoreUtils-XS")
+    (home-page "https://metacpan.org/release/List-MoreUtils-XS")
     (synopsis "Provide the stuff missing in List::Util in XS")
     (description "@code{List::MoreUtils::XS} provides some trivial but
 commonly needed functionality on lists which is not going to go into
@@ -4796,7 +4790,7 @@ commonly needed functionality on lists which is not going to go into
      `(("perl-exporter-tiny" ,perl-exporter-tiny)
        ("perl-module-implementation"
         ,perl-module-implementation)))
-    (home-page "http://search.cpan.org/dist/List-SomeUtils/")
+    (home-page "https://metacpan.org/release/List-SomeUtils")
     (synopsis "Provide the stuff missing in List::Util")
     (description "@code{List::SomeUtils} provides some trivial but commonly
 needed functionality on lists which is not going to go into @code{List::Util}.
@@ -4826,7 +4820,7 @@ portions of this module couldn't be compiled on this machine.")
     (propagated-inputs
      `(("perl-timedate" ,perl-timedate)))
     (home-page
-     "http://search.cpan.org/dist/MailTools/")
+     "https://metacpan.org/release/MailTools")
     (synopsis "Bundle of ancient email modules")
     (description "MailTools contains the following modules:
 @table @asis
@@ -4866,7 +4860,7 @@ Build a Mail::Internet object, and then send it out using Mail::Mailer.
                (base32
                 "1f5qwrb7vvf8804myb2pcahyxffqm9zvfal2n6myzw7x8py1ba0i"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Math-Bezier/")
+    (home-page "https://metacpan.org/release/Math-Bezier")
     (synopsis "Solution of bezier curves")
     (description "This module implements the algorithm for the solution of Bezier
 curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple
@@ -4886,7 +4880,7 @@ Bezier Curve Drawing\".")
                (base32
                 "09wkvqj4hfq9y0fimri967rmhnq90dc2wf20lhlmqjp5hsd359vk"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Math-Round/")
+    (home-page "https://metacpan.org/release/Math-Round")
     (synopsis "Perl extension for rounding numbers")
     (description "@code{Math::Round} provides functions to round numbers,
 both positive and negative, in various ways.")
@@ -4905,7 +4899,7 @@ both positive and negative, in various ways.")
                (base32
                 "1wysq3wrmf1s7s3phimzn7n0dswik7x53apykzgb0l2acigwqfaj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Memoize/")
+    (home-page "https://metacpan.org/release/Memoize")
     (synopsis "Make functions faster by trading space for time")
     (description "This package transparently speeds up functions by caching
 return values, trading space for time.")
@@ -4924,7 +4918,7 @@ return values, trading space for time.")
         (base32
          "1xnp3jqabl4il5kfadlqimbxhzsbm7gpwrgw0m5s5fdsrc0n70zf"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Memoize-ExpireLRU/")
+    (home-page "https://metacpan.org/release/Memoize-ExpireLRU")
     (synopsis "Expiry plug-in for Memoize that adds LRU cache expiration")
     (description "This module implements an expiry policy for Memoize that
 follows LRU semantics, that is, the last n results, where n is specified as
@@ -4943,7 +4937,7 @@ the argument to the CACHESIZE parameter, will be cached.")
                (base32
                 "04qxgcg9mvia121i3zcqxgp20y0d9kg0qv6hddk93ian0af7g347"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/MIME-Charset/")
+    (home-page "https://metacpan.org/release/MIME-Charset")
     (synopsis "Charset information for MIME messages")
     (description
      "@code{MIME::Charset} provides information about character sets used for
@@ -4972,7 +4966,7 @@ MIME messages on Internet.")
     (propagated-inputs
      `(("perl-mailtools" ,perl-mailtools)))
     (home-page
-     "http://search.cpan.org/dist/MIME-tools/")
+     "https://metacpan.org/release/MIME-tools")
     (synopsis "Tools to manipulate MIME messages")
     (description
      "MIME-tools is a collection of Perl5 MIME:: modules for parsing,
@@ -4993,7 +4987,7 @@ messages.")
         (base32
          "1xlg7q6h8zyb8534sy0iqn90py18kilg419q6051bwqz5zadfkp0"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/MIME-Types/")
+    (home-page "https://metacpan.org/release/MIME-Types")
     (synopsis "Definition of MIME types")
     (description "This module provides a list of known mime-types, combined
 from various sources.  For instance, it contains all IANA types and the
@@ -5016,7 +5010,7 @@ knowledge of Apache.")
     (inputs
      `(("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Mixin-Linewise/")
+    (home-page "https://metacpan.org/release/Mixin-Linewise")
     (synopsis "Write your linewise code for handles; this does the rest")
     (description "It's boring to deal with opening files for IO, converting
 strings to handle-like objects, and all that.  With
@@ -5042,7 +5036,7 @@ file names are added for you.")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
     (home-page
-     "http://search.cpan.org/dist/Modern-Perl/")
+     "https://metacpan.org/release/Modern-Perl")
     (synopsis
      "Enable all of the features of Modern Perl with one import")
     (description "@code{Modern::Perl} provides a simple way to enable
@@ -5072,7 +5066,7 @@ multiple, by now, standard libraries in a Perl program.")
        ("perl-extutils-config" ,perl-extutils-config)
        ("perl-extutils-helpers" ,perl-extutils-helpers)
        ("perl-test-harness" ,perl-test-harness)))
-    (home-page "http://search.cpan.org/dist/Module-Build-Tiny/")
+    (home-page "https://metacpan.org/release/Module-Build-Tiny")
     (synopsis "Tiny replacement for Module::Build")
     (description "Many Perl distributions use a Build.PL file instead of a
 Makefile.PL file to drive distribution configuration, build, test and
@@ -5101,7 +5095,7 @@ has less than 120, yet supports the features needed by most distributions.")
        ("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-devel-checkcompiler" ,perl-devel-checkcompiler)))
-    (home-page "http://search.cpan.org/dist/Module-Build-XSUtil/")
+    (home-page "https://metacpan.org/release/Module-Build-XSUtil")
     (synopsis "Module::Build class for building XS modules")
     (description
      "@code{Module::Build::XSUtil} is subclass of @code{Module::Build}
@@ -5139,7 +5133,7 @@ debug options.
         (base32
          "0s45y5lvd9k89g7lds83c0bn1p29c13hfsbrd7x64jfaf8h8cisa"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Module-Find/")
+    (home-page "https://metacpan.org/release/Module-Find")
     (synopsis "Find and use installed modules in a (sub)category")
     (description "Module::Find lets you find and use modules in categories.
 This can be useful for auto-detecting driver or plugin modules.  You can
@@ -5166,7 +5160,7 @@ subcategories.")
     (propagated-inputs
      `(("perl-module-runtime" ,perl-module-runtime)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Module-Implementation/")
+    (home-page "https://metacpan.org/release/Module-Implementation")
     (synopsis "Loads alternate underlying implementations for a module")
     (description "This module abstracts out the process of choosing one of
 several underlying implementations for a module.  This can be used to provide
@@ -5205,7 +5199,7 @@ implementations.")
     ;; TODO: One test requires Test::More >= 0.99, another fails with unicode
     ;; character handling.
     (arguments `(#:tests? #f))
-    (home-page "http://search.cpan.org/dist/Module-Install/")
+    (home-page "https://metacpan.org/release/Module-Install")
     (synopsis "Standalone, extensible Perl module installer")
     (description "Module::Install is a package for writing installers for
 CPAN (or CPAN-like) distributions that are clean, simple, minimalist, act in a
@@ -5232,7 +5226,7 @@ installation version 5.005 or newer.")
        ("perl-test-warn" ,perl-test-warn)))
     (propagated-inputs
      `(("perl-params-util" ,perl-params-util)))
-    (home-page "http://search.cpan.org/dist/Module-Manifest/")
+    (home-page "https://metacpan.org/release/Module-Manifest")
     (synopsis "Parse and examine a Perl distribution @file{MANIFEST} file")
     (description
      "@code{Module::Manifest} is a simple utility module created originally for
@@ -5257,7 +5251,7 @@ examine the contents, and perform some simple tasks.  It can also load the
          "1px6qmszmfc69v36vd8d92av4nkrif6xf4nrj3xv647xwi2svwmk"))
        (patches (search-patches "perl-module-pluggable-search.patch"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Module-Pluggable/")
+    (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.")
@@ -5277,7 +5271,7 @@ examine the contents, and perform some simple tasks.  It can also load the
          "19326f094jmjs6mgpwkyisid54k67w34br8yfh0gvaaml87gwi2c"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Module-Runtime/")
+    (home-page "https://metacpan.org/release/Module-Runtime")
     (synopsis "Perl runtime module handling")
     (description "The functions exported by this module deal with runtime
 handling of Perl modules, which are normally handled at compile time.")
@@ -5301,7 +5295,7 @@ handling of Perl modules, which are normally handled at compile time.")
     (propagated-inputs
      `(("perl-module-runtime" ,perl-module-runtime)
        ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)))
-    (home-page "http://search.cpan.org/dist/Module-Runtime-Conflicts/")
+    (home-page "https://metacpan.org/release/Module-Runtime-Conflicts")
     (synopsis "Provide information on conflicts for Module::Runtime")
     (description "This module provides conflicts checking for Module::Runtime,
 which had a recent release that broke some versions of Moose.  It is called
@@ -5323,7 +5317,7 @@ from Moose::Conflicts and moose-outdated.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-requires" ,perl-test-requires)))
-    (home-page "http://search.cpan.org/dist/Module-ScanDeps/")
+    (home-page "https://metacpan.org/release/Module-ScanDeps")
     (synopsis "Recursively scan Perl code for dependencies")
     (description "Module::ScanDeps is a module to recursively scan Perl
 programs for dependencies.")
@@ -5344,7 +5338,7 @@ programs for dependencies.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build))) ; >= 0.40
-    (home-page "http://search.cpan.org/dist/Module-Util/")
+    (home-page "https://metacpan.org/release/Module-Util")
     (synopsis "Module name tools and transformations")
     (description "This module provides a few useful functions for manipulating
 module names.  Its main aim is to centralise some of the functions commonly
@@ -5375,7 +5369,7 @@ module names to relative paths.")
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-role-tiny" ,perl-role-tiny)
        ("perl-strictures" ,perl-strictures)))
-    (home-page "http://search.cpan.org/dist/Moo/")
+    (home-page "https://metacpan.org/release/Moo")
     (synopsis "Minimalist Object Orientation (with Moose compatibility)")
     (description "Moo is an extremely light-weight Object Orientation system.
 It allows one to concisely define objects and roles with a convenient syntax
@@ -5483,7 +5477,7 @@ Moose and is optimised for rapid startup.")
        ("perl-sub-name" ,perl-sub-name)
        ("perl-task-weaken" ,perl-task-weaken)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Moose/")
+    (home-page "https://metacpan.org/release/Moose")
     (synopsis "Postmodern object system for Perl 5")
     (description
      "Moose is a complete object system for Perl 5.  It provides keywords for
@@ -5514,7 +5508,7 @@ sentences.")
        ("perl-test-exception" ,perl-test-exception)))
     (propagated-inputs
      `(("perl-moose" ,perl-moose)))
-    (home-page "http://search.cpan.org/dist/MooseX-Emulate-Class-Accessor-Fast/")
+    (home-page "https://metacpan.org/release/MooseX-Emulate-Class-Accessor-Fast")
     (synopsis "Emulate Class::Accessor::Fast behavior using Moose attributes")
     (description "This module attempts to emulate the behavior of
 Class::Accessor::Fast as accurately as possible using the Moose attribute
@@ -5547,7 +5541,7 @@ private methods are not.")
        ("perl-moose" ,perl-moose)
        ("perl-moosex-role-parameterized" ,perl-moosex-role-parameterized)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Getopt/")
+    (home-page "https://metacpan.org/release/MooseX-Getopt")
     (synopsis "Moose role for processing command line options")
     (description "This is a Moose role which provides an alternate constructor
 for creating objects using parameters passed in from the command line.")
@@ -5569,7 +5563,7 @@ for creating objects using parameters passed in from the command line.")
     (inputs
      `(("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-MarkAsMethods/")
+    (home-page "https://metacpan.org/release/MooseX-MarkAsMethods")
     (synopsis "Mark overload code symbols as methods")
     (description "MooseX::MarkAsMethods allows one to easily mark certain
 functions as Moose methods.  This will allow other packages such as
@@ -5600,7 +5594,7 @@ overloads will \"just work\".")
      `(("perl-moose" ,perl-moose)
        ("perl-moosex-types" ,perl-moosex-types)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-MethodAttributes/")
+    (home-page "https://metacpan.org/release/MooseX-MethodAttributes")
     (synopsis "Code attribute introspection")
     (description "This module allows code attributes of methods to be
 introspected using Moose meta method objects.")
@@ -5627,7 +5621,7 @@ introspected using Moose meta method objects.")
       ("perl-module-runtime" ,perl-module-runtime)
       ("perl-moose" ,perl-moose)
       ("perl-try-tiny" ,perl-try-tiny)))
-  (home-page "http://search.cpan.org/dist/MooseX-NonMoose/")
+  (home-page "https://metacpan.org/release/MooseX-NonMoose")
   (synopsis "Subclassing of non-Moose classes")
   (description "MooseX::NonMoose allows for easily subclassing non-Moose
 classes with Moose, taking care of the details connected with doing this, such
@@ -5657,7 +5651,7 @@ BUILD methods are called.  It tries to be as non-intrusive as possible.")
        ("perl-moose" ,perl-moose)
        ("perl-params-validate" ,perl-params-validate)
        ("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/MooseX-Params-Validate/")
+    (home-page "https://metacpan.org/release/MooseX-Params-Validate")
     (synopsis "Extension of Params::Validate using Moose's types")
     (description "This module fills a gap in Moose by adding method parameter
 validation to Moose.")
@@ -5679,7 +5673,7 @@ validation to Moose.")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-moosex-role-parameterized" ,perl-moosex-role-parameterized)))
-    (home-page "http://search.cpan.org/dist/MooseX-RelatedClassRoles/")
+    (home-page "https://metacpan.org/release/MooseX-RelatedClassRoles")
     (synopsis "Apply roles to a related Perl class")
     (description "This module applies roles to make a subclass instead of
 manually setting up a subclass.")
@@ -5707,7 +5701,7 @@ manually setting up a subclass.")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Role-Parameterized/")
+    (home-page "https://metacpan.org/release/MooseX-Role-Parameterized")
     (synopsis "Moose roles with composition parameters")
     (description "Because Moose roles serve many different masters, they
 usually provide only the least common denominator of functionality.  To
@@ -5734,7 +5728,7 @@ Parameterized roles offer a solution to these (and other) kinds of problems.")
      `(("perl-aliased" ,perl-aliased)
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Role-WithOverloading/")
+    (home-page "https://metacpan.org/release/MooseX-Role-WithOverloading")
     (synopsis "Roles which support overloading")
     (description "MooseX::Role::WithOverloading allows you to write a
 Moose::Role which defines overloaded operators and allows those overload
@@ -5757,7 +5751,7 @@ where plain Moose::Roles would lose the overloading.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-moose" ,perl-moose)))
-    (home-page "http://search.cpan.org/dist/MooseX-SemiAffordanceAccessor/")
+    (home-page "https://metacpan.org/release/MooseX-SemiAffordanceAccessor")
     (synopsis "Name your accessors foo() and set_foo()")
     (description "This module does not provide any methods.  Simply loading it
 changes the default naming policy for the loading class so that accessors are
@@ -5784,7 +5778,7 @@ accessor, while set methods are prefixed with \"_set_\".")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-StrictConstructor/")
+    (home-page "https://metacpan.org/release/MooseX-StrictConstructor")
     (synopsis "Strict object constructors for Moose")
     (description "Simply loading this module makes your constructors
 \"strict\".  If your constructor is called with an attribute init argument
@@ -5813,7 +5807,7 @@ that your class does not declare, then it calls Moose->throw_error().")
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
     (home-page
-     "http://search.cpan.org/dist/MooseX-Traits-Pluggable/")
+     "https://metacpan.org/release/MooseX-Traits-Pluggable")
     (synopsis "Trait loading and resolution for Moose")
     (description "Adds support on top of MooseX::Traits for class precedence
 search for traits and some extra attributes.")
@@ -5840,7 +5834,7 @@ search for traits and some extra attributes.")
      `(("perl-carp-clan" ,perl-carp-clan)
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Types/")
+    (home-page "https://metacpan.org/release/MooseX-Types")
     (synopsis "Organise your Moose types in libraries")
     (description "This package lets you declare types using short names, but
 behind the scenes it namespaces all your type declarations, effectively
@@ -5872,7 +5866,7 @@ prevent name clashes between packages.")
        ("perl-moose" ,perl-moose)
        ("perl-moosex-types" ,perl-moosex-types)
        ("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Types-DateTime/")
+    (home-page "https://metacpan.org/release/MooseX-Types-DateTime")
     (synopsis "DateTime related constraints and coercions for Moose")
     (description "This module packages several Moose::Util::TypeConstraints
 with coercions, designed to work with the DateTime suite of objects.")
@@ -5905,7 +5899,7 @@ with coercions, designed to work with the DateTime suite of objects.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-time-duration-parse" ,perl-time-duration-parse)))
     (home-page
-     "http://search.cpan.org/dist/MooseX-Types-DateTime-MoreCoercions/")
+     "https://metacpan.org/release/MooseX-Types-DateTime-MoreCoercions")
     (synopsis "Extensions to MooseX::Types::DateTime")
     (description "This module builds on MooseX::Types::DateTime to add
 additional custom types and coercions.  Since it builds on an existing type,
@@ -5935,7 +5929,7 @@ all coercions and constraints are inherited.")
      `(("perl-module-runtime" ,perl-module-runtime)
        ("perl-moosex-types" ,perl-moosex-types)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/MooseX-Types-LoadableClass/")
+    (home-page "https://metacpan.org/release/MooseX-Types-LoadableClass")
     (synopsis "ClassName type constraints for Moose")
     (description "MooseX::Types::LoadableClass provides a ClassName type
 constraint with coercion to load the class.")
@@ -5961,7 +5955,7 @@ constraint with coercion to load the class.")
        ("perl-import-into" ,perl-import-into)
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-moo" ,perl-moo)))
-    (home-page "http://search.cpan.org/dist/MooX/")
+    (home-page "https://metacpan.org/release/MooX")
     (synopsis
      "Using Moo and MooX:: packages the most lazy way")
     (description "Contains the MooX and MooX::Role packages.")
@@ -5990,7 +5984,7 @@ constraint with coercion to load the class.")
        ("perl-package-stash" ,perl-package-stash)
        ("perl-params-util" ,perl-params-util)
        ("perl-regexp-common" ,perl-regexp-common)))
-    (home-page "http://search.cpan.org/dist/MooX-Cmd")
+    (home-page "https://metacpan.org/release/MooX-Cmd")
     (synopsis "Giving an easy Moo style way to make command organized CLI apps")
     (description "This package eases the writing of command line utilities,
 accepting commands and subcommands and so on.  These commands can form a tree,
@@ -6024,7 +6018,7 @@ most specific one) is instantiated.")
        ("perl-moo" ,perl-moo)
        ("perl-moox-file-configdir" ,perl-moox-file-configdir)
        ("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/MooX-ConfigFromFile/")
+    (home-page "https://metacpan.org/release/MooX-ConfigFromFile")
     (synopsis "Moo eXtension for initializing objects from config file")
     (description "This module is intended to easily load initialization values
 for attributes on object construction from an appropriate config file.  The
@@ -6049,7 +6043,7 @@ building is done in @code{MooX::ConfigFromFile::Role}---using
      `(("perl-file-configdir" ,perl-file-configdir)
        ("perl-moo" ,perl-moo)
        ("perl-namespace-clean" ,perl-namespace-clean)))
-    (home-page "http://search.cpan.org/dist/MooX-File-ConfigDir/")
+    (home-page "https://metacpan.org/release/MooX-File-ConfigDir")
     (synopsis "Moo eXtension for @code{File::ConfigDir}")
     (description "This module is a helper for easily finding configuration
 file locations.  This information can be used to find a suitable place for
@@ -6085,7 +6079,7 @@ installing configuration files or for finding any piece of settings.")
     (propagated-inputs
      `(("perl-data-perl" ,perl-data-perl)))
     (home-page
-     "http://search.cpan.org/dist/MooX-HandlesVia/")
+     "https://metacpan.org/release/MooX-HandlesVia")
     (synopsis "NativeTrait-like behavior for Moo")
     (description
      "@code{MooX::HandlesVia} is an extension of Moo's @code{handles}
@@ -6118,7 +6112,7 @@ an external class to the given atttribute.")
     (propagated-inputs
      `(("perl-type-tiny" ,perl-type-tiny)))
     (home-page
-     "http://search.cpan.org/dist/MooX-late/")
+     "https://metacpan.org/release/MooX-late")
     (synopsis "Easily translate Moose code to Moo")
     (description
      "MooX::late does the following:
@@ -6175,7 +6169,7 @@ MooX::HandlesVia.
        ("perl-regexp-common" ,perl-regexp-common)
        ("perl-term-size-any" ,perl-term-size-any)
        ("perl-unicode-linebreak" ,perl-unicode-linebreak)))
-    (home-page "http://search.cpan.org/dist/MooX-Options/")
+    (home-page "https://metacpan.org/release/MooX-Options")
     (synopsis "Explicit Options eXtension for Object Class")
     (description "Create a command line tool with your Mo, Moo, Moose objects.
 You have an @code{option} keyword to replace the usual @code{has} to
@@ -6203,7 +6197,7 @@ generate a command line tool.")
     (propagated-inputs
      `(("perl-module-runtime" ,perl-module-runtime)
        ("perl-strictures" ,perl-strictures)))
-    (home-page "http://search.cpan.org/dist/MooX-Types-MooseLike/")
+    (home-page "https://metacpan.org/release/MooX-Types-MooseLike")
     (synopsis "Moosish types and type builder")
     (description "MooX::Types::MooseLike provides a possibility to build your
 own set of Moose-like types.  These custom types can then be used to describe
@@ -6258,7 +6252,7 @@ subset of the functionality for reduced startup time.")
        ("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-mouse" ,perl-mouse)))
-    (home-page "http://search.cpan.org/dist/MouseX-NativeTraits/")
+    (home-page "https://metacpan.org/release/MouseX-NativeTraits")
     (synopsis "Extend attribute interfaces for Mouse")
     (description
      "While @code{Mouse} attributes provide a way to name your accessors,
@@ -6280,7 +6274,7 @@ of data.")
         (base32
          "01p4ykyilk1639dxgjaa2n7rz1f0zbqxkq11yc9n6xcz26z9zk7j"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Mozilla-CA/")
+    (home-page "https://metacpan.org/release/Mozilla-CA")
     (synopsis "Mozilla's CA cert bundle in PEM format")
     (description "@code{Mozilla::CA} provides a copy of Mozilla's bundle of
 Certificate Authority certificates in a form that can be consumed by modules
@@ -6307,7 +6301,7 @@ and libraries based on OpenSSL.")
     (propagated-inputs
      `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check)
        ("perl-lexical-sealrequirehints" ,perl-lexical-sealrequirehints)))
-    (home-page "http://search.cpan.org/dist/multidimensional/")
+    (home-page "https://metacpan.org/release/multidimensional")
     (synopsis "Disable multidimensional array emulation")
     (description
      "Multidimensional disables multidimensional array emulation.")
@@ -6326,7 +6320,7 @@ and libraries based on OpenSSL.")
         (base32
          "1y547lr6zccf7919vx01v22zsajy528psanhg5aqschrrin3nb4a"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/MRO-Compat/")
+    (home-page "https://metacpan.org/release/MRO-Compat")
     (synopsis "MRO interface compatibility for Perls < 5.9.5")
     (description "The \"mro\" namespace provides several utilities for dealing
 with method resolution order and method caching in general in Perl 5.9.5 and
@@ -6354,7 +6348,7 @@ Perl (back to 5.6.0).")
      `(("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-sub-identify" ,perl-sub-identify)))
-    (home-page "http://search.cpan.org/dist/namespace-autoclean/")
+    (home-page "https://metacpan.org/release/namespace-autoclean")
     (synopsis "Keep imports out of your namespace")
     (description "The namespace::autoclean pragma will remove all imported
 symbols at the end of the current package's compile cycle.  Functions called
@@ -6381,7 +6375,7 @@ anything that looks like a method.")
     (propagated-inputs
      `(("perl-package-stash" ,perl-package-stash)
        ("perl-b-hooks-endofscope" ,perl-b-hooks-endofscope)))
-    (home-page "http://search.cpan.org/dist/namespace-clean/")
+    (home-page "https://metacpan.org/release/namespace-clean")
     (synopsis "Keep imports and functions out of your namespace")
     (description "The namespace::clean pragma will remove all previously
 declared or imported symbols at the end of the current package's compile
@@ -6402,7 +6396,7 @@ name, but they won't show up as methods on your class or instances.")
        (sha256
         (base32 "12bsv5jkic3q4arpzk6dda35didkn445v658j87rmi540dpnac85"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Net-DNS-Native/")
+    (home-page "https://metacpan.org/release/Net-DNS-Native")
     (synopsis "Non-blocking system DNS resolver")
     (description
      "This class provides several methods for host name resolution.  It is
@@ -6431,7 +6425,7 @@ system threads instead of Perl threads.")
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-nowarnings" ,perl-test-nowarnings)))
     (home-page
-     "http://search.cpan.org/dist/Net-IDN-Encode/")
+     "https://metacpan.org/release/Net-IDN-Encode")
     (synopsis
      "Internationalizing Domain Names in Applications (IDNA)")
     (description
@@ -6460,7 +6454,7 @@ using whatever IDNA standard is the best choice at the moment.")
         "0p2nhrwamic2fyj094y583q088ixv9gbb82c3invqrd17mh57r33"))))
    (build-system perl-build-system)
    (home-page
-    "http://search.cpan.org/dist/Net-Statsd/")
+    "https://metacpan.org/release/Net-Statsd")
    (synopsis "Perl client for Etsy's statsd daemon")
    (description "This module implement a UDP client for the statsd statistics
 collector daemon in use at Etsy.com.")
@@ -6479,7 +6473,7 @@ collector daemon in use at Etsy.com.")
         (base32
          "09q8i0mxvr7q9vajwlgawsi0hlpc119gnhq4hc933d03x0vkfac3"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Number-Compare/")
+    (home-page "https://metacpan.org/release/Number-Compare")
     (synopsis "Numeric comparisons")
     (description "Number::Compare compiles a simple comparison to an anonymous
 subroutine, which you can call with a value to be tested against.")
@@ -6498,7 +6492,7 @@ subroutine, which you can call with a value to be tested against.")
                (base32
                 "1wspw9fybik76jq9w1n1gmvfixd4wvlrq6ni8kyn85s62v5mkml2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Number-Format/")
+    (home-page "https://metacpan.org/release/Number-Format")
     (synopsis "Convert numbers to strings with pretty formatting")
     (description "@code{Number::Format} is a library for formatting numbers.
 Functions are provided for converting numbers to strings in a variety of ways,
@@ -6523,7 +6517,7 @@ the locale information or can be specified by the user.")
         (base32
          "0999xvs3w2xprs14q4shqndjf2m6mzvhzdljgr61ddjaqhd84gj3"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Number-Range/")
+    (home-page "https://metacpan.org/release/Number-Range")
     (synopsis "Perl extension defining ranges of numbers")
     (description "Number::Range is an object-oriented interface to test if a
 number exists in a given range, and to be able to manipulate the range.")
@@ -6544,7 +6538,7 @@ number exists in a given range, and to be able to manipulate the range.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/Object-Signature/")
+    (home-page "https://metacpan.org/release/Object-Signature")
     (synopsis "Generate cryptographic signatures for objects")
     (description "Object::Signature is an abstract base class that you can
 inherit from in order to allow your objects to generate unique cryptographic
@@ -6566,7 +6560,7 @@ signatures.")
         (base32
          "179cxwqxb0f9dpx8954nvwjmggxxi5ndnang41yav1dx6mf0abp7"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/OLE-Storage_Lite/")
+    (home-page "https://metacpan.org/release/OLE-Storage_Lite")
     (synopsis "Read and write OLE storage files")
     (description "This module allows you to read and write
 an OLE-Structured file.  @dfn{OLE} (Object Linking and Embedding) is a
@@ -6590,7 +6584,7 @@ documents within a single file.")
     (propagated-inputs
      `(("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-params-util" ,perl-params-util)))
-    (home-page "http://search.cpan.org/dist/Package-Anon/")
+    (home-page "https://metacpan.org/release/Package-Anon")
     (synopsis "Anonymous packages")
     (description "This module allows for anonymous packages that are
 independent of the main namespace and only available through an object
@@ -6619,7 +6613,7 @@ instance, not by name.")
        ("perl-params-util" ,perl-params-util)
        ("perl-sub-install" ,perl-sub-install)))
     (arguments `(#:tests? #f))          ;XXX: Failing for some reason...
-    (home-page "http://search.cpan.org/dist/Package-DeprecationManager/")
+    (home-page "https://metacpan.org/release/Package-DeprecationManager")
     (synopsis "Manage deprecation warnings for your distribution")
     (description "This module allows you to manage a set of deprecations for
 one or more modules.")
@@ -6647,7 +6641,7 @@ one or more modules.")
      `(("perl-module-implementation" ,perl-module-implementation)
        ("perl-dist-checkconflicts" ,perl-dist-checkconflicts)
        ("perl-package-stash-xs" ,perl-package-stash-xs)))
-    (home-page "http://search.cpan.org/dist/Package-Stash/")
+    (home-page "https://metacpan.org/release/Package-Stash")
     (synopsis "Routines for manipulating stashes")
     (description "Manipulating stashes (Perl's symbol tables) is occasionally
 necessary, but incredibly messy, and easy to get wrong.  This module hides all
@@ -6671,7 +6665,7 @@ of that behind a simple API.")
      `(("perl-test-fatal" ,perl-test-fatal)
        ("perl-test-requires" ,perl-test-requires)
        ("perl-package-anon" ,perl-package-anon)))
-    (home-page "http://search.cpan.org/dist/Package-Stash-XS/")
+    (home-page "https://metacpan.org/release/Package-Stash-XS")
     (synopsis "Faster implementation of the Package::Stash API")
     (description "This is a backend for Package::Stash, which provides the
 functionality in a way that's less buggy and much faster.  It will be used by
@@ -6692,7 +6686,7 @@ compiler.")
         (base32
          "058l78rkr6px3rqcv2sdf9sqimdq1nc6py5yb9rrg3wmva7crw84"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/PadWalker/")
+    (home-page "https://metacpan.org/release/PadWalker")
     (synopsis "Play with other peoples' lexical variables")
     (description "PadWalker is a module which allows you to inspect (and even
 change) lexical variables in any subroutine which called you.  It will only
@@ -6717,7 +6711,7 @@ is particularly useful for debugging.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-warn" ,perl-test-warn)))
-    (home-page "http://search.cpan.org/dist/Parallel-ForkManager/")
+    (home-page "https://metacpan.org/release/Parallel-ForkManager")
     (synopsis "Simple parallel processing fork manager")
     (description "@code{Parallel::ForkManager} is intended for use in
 operations that can be done in parallel where the number of
@@ -6738,7 +6732,7 @@ processes to be forked off should be limited.")
         (base32
          "0v67sx93yhn7xa0nh9mnbf8mixf54czk6wzrjsp6dzzr5hzyrw9h"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Params-Util/")
+    (home-page "https://metacpan.org/release/Params-Util")
     (synopsis "Simple, compact and correct param-checking functions")
     (description
      "Params::Util provides a basic set of importable functions that makes
@@ -6764,7 +6758,7 @@ checking parameters easier.")
        ("perl-test-requires" ,perl-test-requires)))
     (propagated-inputs
      `(("perl-module-implementation" ,perl-module-implementation)))
-    (home-page "http://search.cpan.org/dist/Params-Validate/")
+    (home-page "https://metacpan.org/release/Params-Validate")
     (synopsis "Validate method/function parameters")
     (description "The Params::Validate module allows you to validate method or
 function call parameters to an arbitrary level of specificity.")
@@ -6815,7 +6809,7 @@ defaults, optional parameters, and extra \"slurpy\" parameters.")
         (base32
          "078ycyn8pw3rba4k3qwcqrqfcym5c1pivymwa0bvs9sab45j4iwy"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/PAR-Dist/")
+    (home-page "https://metacpan.org/release/PAR-Dist")
     (synopsis "Create and manipulate PAR distributions")
     (description "PAR::Dist is a toolkit to create and manipulate PAR
 distributions.")
@@ -6834,7 +6828,7 @@ distributions.")
         (base32
          "0w0i02y4z8465z050kml57mvhv7c5gl8w8ivplhr3cms0zbaq87b"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/parent/")
+    (home-page "https://metacpan.org/release/parent")
     (synopsis "Establish an ISA relationship with base classes at compile time")
     (description "Allows you to both load one or more modules, while setting
 up inheritance from those modules at the same time.")
@@ -6854,7 +6848,7 @@ up inheritance from those modules at the same time.")
          "1kj8q8dmd8jci94w5arav59nkp0pkxrkliz4n8n6yf02hsa82iv5"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Path-Class/")
+    (home-page "https://metacpan.org/release/Path-Class")
     (synopsis "Path specification manipulation")
     (description "Path::Class is a module for manipulation of file and
 directory specifications in a cross-platform manner.")
@@ -6884,7 +6878,7 @@ directory specifications in a cross-platform manner.")
                                "/bin/pwd'"))))))))
     (inputs
      `(("coreutils" ,coreutils)))
-    (home-page "http://search.cpan.org/dist/PathTools/")
+    (home-page "https://metacpan.org/release/PathTools")
     (synopsis "Tools for working with directory and file names")
     (description "This package provides functions to work with directory and
 file names.")
@@ -6909,7 +6903,7 @@ file names.")
     ;;    ("perl-test-mockrandom" ,perl-test-mockrandom)))
     (inputs
      `(("perl-unicode-utf8" ,perl-unicode-utf8)))
-    (home-page "http://search.cpan.org/dist/Path-Tiny/")
+    (home-page "https://metacpan.org/release/Path-Tiny")
     (synopsis "File path utility")
     (description "This module provides a small, fast utility for working
 with file paths.")
@@ -6931,7 +6925,7 @@ with file paths.")
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
     (home-page
-     "http://search.cpan.org/dist/PerlIO-utf8_strict/")
+     "https://metacpan.org/release/PerlIO-utf8_strict")
     (synopsis "Fast and correct UTF-8 IO")
     (description "@code{PerlIO::utf8_strict} provides a fast and correct UTF-8
 PerlIO layer.  Unlike Perl's default @code{:utf8} layer it checks the input
@@ -6955,7 +6949,7 @@ for correctness.")
    (native-inputs
     `(("perl-file-sharedir-install" ,perl-file-sharedir-install)
       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
-   (home-page "http://search.cpan.org/dist/Pegex/")
+   (home-page "https://metacpan.org/release/Pegex")
    (synopsis "Acmeist PEG Parser Framework")
    (description "Pegex is an Acmeist parser framework.  It allows you to easily
 create parsers that will work equivalently in lots of programming languages.
@@ -6980,7 +6974,7 @@ available.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-devel-symdump" ,perl-devel-symdump)))
-    (home-page "http://search.cpan.org/dist/Pod-Coverage/")
+    (home-page "https://metacpan.org/release/Pod-Coverage")
     (synopsis "Check for comprehensive documentation of a module")
     (description "This module provides a mechanism for determining if the pod
 for a given module is comprehensive.")
@@ -6998,7 +6992,7 @@ for a given module is comprehensive.")
                (base32
                 "0gg11ibbc02l2aw0bsv4jx0jax8z0apgfy3p5csqnvhlsb6218cr"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Pod-Simple/")
+    (home-page "https://metacpan.org/release/Pod-Simple")
     (synopsis "Parsing library for text in Pod format")
     (description "@code{Pod::Simple} is a Perl library for parsing text in
 the @dfn{Pod} (plain old documentation) markup language that is typically
@@ -7020,7 +7014,7 @@ used for writing documentation for Perl and for Perl modules.")
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
     (arguments `(#:tests? #f))          ; TODO: Timezone test failures
-    (home-page "http://search.cpan.org/dist/POSIX-strftime-Compiler/")
+    (home-page "https://metacpan.org/release/POSIX-strftime-Compiler")
     (synopsis "GNU C library compatible strftime for loggers and servers")
     (description "POSIX::strftime::Compiler provides GNU C library compatible
 strftime(3).  But this module is not affected by the system locale.  This
@@ -7045,8 +7039,7 @@ applications.")
      "Probe::Perl provides methods for obtaining information about the
 currently running perl interpreter.  It originally began life as code in the
 Module::Build project, but has been externalized here for general use.")
-    (home-page (string-append "http://search.cpan.org/~kwilliams//"
-                              "Probe-Perl-" version))
+    (home-page "https://metacpan.org/release/Probe-Perl")
     (license (package-license perl))))
 
 (define-public perl-proc-invokeeditor
@@ -7069,7 +7062,7 @@ Module::Build project, but has been externalized here for general use.")
            (lambda _ (setenv "EDITOR" "echo") #t)))))
     (propagated-inputs
      `(("perl-carp-assert" ,perl-carp-assert)))
-    (home-page "http://search.cpan.org/dist/Proc-InvokeEditor/")
+    (home-page "https://metacpan.org/release/Proc-InvokeEditor")
     (synopsis "Interface to external editor from Perl")
     (description "This module provides the ability to supply some text to an
 external text editor, have it edited by the user, and retrieve the results.")
@@ -7089,7 +7082,7 @@ external text editor, have it edited by the user, and retrieve the results.")
          "165zcf9lpijdpkx82za0g9rx8ckjnhipmcivdkyzshl8jmp1bl4v"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Readonly/")
+    (home-page "https://metacpan.org/release/Readonly")
     (synopsis "Create read-only scalars, arrays, hashes")
     (description "This module provides a facility for creating non-modifiable
 variables in Perl.  This is useful for configuration files, headers, etc.  It
@@ -7110,7 +7103,7 @@ variables that should not be changed.")
         (base32
          "0g33cndhj353h5xjihvgjc2h6vxwkyyzw63r4l06czvq4flcar7v"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Ref-Util-XS/")
+    (home-page "https://metacpan.org/release/Ref-Util-XS")
     (synopsis "XS implementation for Ref::Util")
     (description "@code{Ref::Util::XS} is the XS implementation of
 @code{Ref::Util}, which provides several functions to help identify references
@@ -7138,8 +7131,7 @@ balanced parentheses and brackets, delimited text (with escapes), integers and
 floating-point numbers in any base (up to 36), comments in 44 languages,
 offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip
 codes.")
-    (home-page (string-append "http://search.cpan.org/~abigail//"
-                              "Regexp-Common-" version))
+    (home-page "https://metacpan.org/release/Regexp-Common")
     ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD.
     (license (list (package-license perl) x11 bsd-3))))
 
@@ -7156,7 +7148,7 @@ codes.")
         (base32
          "01n1cggiflsnp9f6adkcxzkc0qpgssz60cwnyyd8mzavh2ximr5a"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Regexp-Util/")
+    (home-page "https://metacpan.org/release/Regexp-Util")
     (synopsis "Selection of general-utility regexp subroutines")
     (description "This package provides a selection of regular expression
 subroutines including @code{is_regexp}, @code{regexp_seen_evals},
@@ -7182,7 +7174,7 @@ and @code{deserialize_regexp}.")
        ("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-class-method-modifiers" ,perl-class-method-modifiers)))
-    (home-page "http://search.cpan.org/dist/Role-Tiny/")
+    (home-page "https://metacpan.org/release/Role-Tiny")
     (synopsis "Roles, as a slice of Moose")
     (description "Role::Tiny is a minimalist role composition tool.")
     (license (package-license perl))))
@@ -7214,7 +7206,7 @@ and @code{deserialize_regexp}.")
         (base32
          "0sm6p1kw98s7j6n92vvxjqf818xggnmjwci34xjmw7gzl2519x47"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Safe-Isa/")
+    (home-page "https://metacpan.org/release/Safe-Isa")
     (synopsis "Call isa, can, does, and DOES safely")
     (description "This module allows you to call isa, can, does, and DOES
 safely on things that may not be objects.")
@@ -7233,7 +7225,7 @@ safely on things that may not be objects.")
         (base32
          "0y6jfzvxiz8h5yfz701shair0ilypq2mvimd7wn8wi2nbkm1p6wc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Scope-Guard/")
+    (home-page "https://metacpan.org/release/Scope-Guard")
     (synopsis "Lexically-scoped resource management")
     (description "This module provides a convenient way to perform cleanup or
 other forms of resource management at the end of a scope.  It is particularly
@@ -7257,7 +7249,7 @@ collector.")
         (base32
          "07vyp0jpndcxkbyjk432nillxxk22wrmm2rs985y8ba96h3qig07"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Set-Infinite/")
+    (home-page "https://metacpan.org/release/Set-Infinite")
     (synopsis "Infinite sets")
     (description "Set::Infinite is a set theory module for infinite sets.")
     (license (package-license perl))))
@@ -7275,7 +7267,7 @@ collector.")
                (base32
                 "1l6znd40ylzvfwl02rlqzvakv602rmvwgm2xd768fpgc2fdm9dqi"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Set-IntSpan/")
+    (home-page "https://metacpan.org/release/Set-IntSpan")
     (synopsis "Manage sets of integers")
     (description "@code{Set::IntSpan} manages sets of integers.  It is
 optimized for sets that have long runs of consecutive integers.")
@@ -7297,7 +7289,7 @@ optimized for sets that have long runs of consecutive integers.")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-test-leaktrace" ,perl-test-leaktrace)))
-    (home-page "http://search.cpan.org/dist/Set-Object/")
+    (home-page "https://metacpan.org/release/Set-Object")
     (synopsis "Unordered collections of Perl Objects")
     (description "Set::Object provides efficient sets, unordered collections
 of Perl objects without duplicates for scalars and references.")
@@ -7316,7 +7308,7 @@ of Perl objects without duplicates for scalars and references.")
         (base32
          "07aiqkyi1p22drpcyrrmv7f8qq6fhrxh007achy2vryxyck1bp53"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Set-Scalar/")
+    (home-page "https://metacpan.org/release/Set-Scalar")
     (synopsis "Set operations for Perl")
     (description "The first priority of Set::Scalar is to be a convenient
 interface to sets (as in: unordered collections of Perl scalars).  While not
@@ -7337,7 +7329,7 @@ compact.")
         (base32
          "1kqs10s2plj6c96srk0j8d7xj8dxk1704r7mck8rqk09mg7lqspd"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Sort-Key/")
+    (home-page "https://metacpan.org/release/Sort-Key")
     (synopsis "Sort arrays by one or multiple calculated keys")
     (description "This Perl module provides various functions to quickly sort
 arrays by one or multiple calculated keys.")
@@ -7356,7 +7348,7 @@ arrays by one or multiple calculated keys.")
         (base32
          "0ip7q5g8d3lr7ri3ffcbrpk1hzzsiwgsn14k10k7hnjphxf1raza"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Sort-Naturally/")
+    (home-page "https://metacpan.org/release/Sort-Naturally")
     (synopsis "Sort lexically, but sort numeral parts numerically")
     (description "This module exports two functions, @code{nsort} and
 @code{ncmp}; they are used in implementing a \"natural sorting\" algorithm.
@@ -7385,7 +7377,7 @@ word-characters are compared lexically.")
        ("perl-role-tiny" ,perl-role-tiny)
        ("perl-test-fatal" ,perl-test-fatal)
        ("perl-test-needs" ,perl-test-needs)))
-    (home-page "http://search.cpan.org/dist/Specio//")
+    (home-page "https://metacpan.org/release/Specio")
     (synopsis "Classes for representing type constraints and coercion")
     (description "The Specio distribution provides classes for representing type
 constraints and coercion, along with syntax sugar for declaring them.  Note that
@@ -7409,7 +7401,7 @@ coerce values to that type.")
         (base32
          "18qxshrjh0ibpzjm2314157mxlibh3smyg64nr4mq990hh564n4g"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Spiffy/")
+    (home-page "https://metacpan.org/release/Spiffy")
     (synopsis "Spiffy Perl Interface Framework For You")
     (description "Spiffy is a framework and methodology for doing object
 oriented (OO) programming in Perl.  Spiffy combines the best parts of
@@ -7434,7 +7426,7 @@ other OO languages like Python, Ruby, Java and Perl 6.")
     (build-system perl-build-system)
     (inputs
      `(("perl-number-format" ,perl-number-format)))
-    (home-page "http://search.cpan.org/dist/Statistics-Basic/")
+    (home-page "https://metacpan.org/release/Statistics-Basic")
     (synopsis "Collection of very basic statistics modules")
     (description "This package provides basic statistics functions like
 @code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}.")
@@ -7453,7 +7445,7 @@ other OO languages like Python, Ruby, Java and Perl 6.")
         (base32
          "0fs2n9zw6isfkha2kbqrvl9mwg572x1x0jlfaps0qsyynn846bcv"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Stream-Buffered/")
+    (home-page "https://metacpan.org/release/Stream-Buffered")
     (synopsis "Temporary buffer to save bytes")
     (description "Stream::Buffered is a buffer class to store arbitrary length
 of byte strings and then get a seekable filehandle once everything is
@@ -7474,7 +7466,7 @@ on the length of the size.")
         (base32
          "1bmpv8wr9jbc1lfj634xhq3y42nm28hh01jfsyzxhqhqf6dkdz59"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/strictures/")
+    (home-page "https://metacpan.org/release/strictures")
     (synopsis "Turn on strict and make all warnings fatal")
     (description "Strictures turns on strict and make all warnings fatal when
 run from within a source-controlled directory.")
@@ -7517,7 +7509,7 @@ run from within a source-controlled directory.")
                      (string-append (getcwd) ":"
                                     (getenv "PERL5LIB")))
              #t)))))
-    (home-page "http://search.cpan.org/dist/String-CamelCase/")
+    (home-page "https://metacpan.org/release/String-CamelCase")
     (synopsis "Camelcase and de-camelcase")
     (description "This module may be used to convert from under_score text to
 CamelCase and back again.")
@@ -7537,7 +7529,7 @@ CamelCase and back again.")
         (base32
          "12ls7f7847i4qcikkp3skwraqvjphjiv2zxfhl5d49326f5myr7x"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/String-Escape/")
+    (home-page "https://metacpan.org/release/String-Escape")
     (synopsis "Backslash escapes, quoted phrase, word elision, etc.")
     (description "This module provides a flexible calling interface to some
 frequently-performed string conversion functions, including applying and
@@ -7560,7 +7552,7 @@ removing double-quotes, and truncating to fit within a desired length.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/String-RewritePrefix/")
+    (home-page "https://metacpan.org/release/String-RewritePrefix")
     (synopsis "Rewrite strings based on a set of known prefixes")
     (description "This module allows you to rewrite strings based on a set of
 known prefixes.")
@@ -7580,7 +7572,7 @@ known prefixes.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-unicode-linebreak" ,perl-unicode-linebreak)))
-    (home-page "http://search.cpan.org/dist/String-Print/")
+    (home-page "https://metacpan.org/release/String-Print")
     (synopsis "String printing alternatives to printf")
     (description
      "This module inserts values into (translated) strings.  It provides
@@ -7605,7 +7597,7 @@ a functional interface.")
     (propagated-inputs
      `(("perl-data-optlist" ,perl-data-optlist)
        ("perl-params-util" ,perl-params-util)))
-    (home-page "http://search.cpan.org/dist/Sub-Exporter/")
+    (home-page "https://metacpan.org/release/Sub-Exporter")
     (synopsis "Sophisticated exporter for custom-built routines")
     (description
      "Sub::Exporter provides a sophisticated alternative to Exporter.pm for
@@ -7626,7 +7618,7 @@ custom-built routines.")
          "0mn0x8mkh36rrsr58s1pk4srwxh2hbwss7sv630imnk49navfdfm"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-sub-exporter" ,perl-sub-exporter)))
-    (home-page "http://search.cpan.org/dist/Sub-Exporter-Progressive/")
+    (home-page "https://metacpan.org/release/Sub-Exporter-Progressive")
     (synopsis "Only use Sub::Exporter if you need it")
     (description "Sub::Exporter is an incredibly powerful module, but with
 that power comes great responsibility, as well as some runtime penalties.
@@ -7649,7 +7641,7 @@ renaming exports, if they try to use them.")
         (base32
          "087fjcg6w576w47i1slj6mjfd3gl1b0airgddmn3prn0nff6nn2m"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Sub-Identify/")
+    (home-page "https://metacpan.org/release/Sub-Identify")
     (synopsis "Retrieve names of code references")
     (description "Sub::Identify allows you to retrieve the real name of code
 references.")
@@ -7670,7 +7662,7 @@ references.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-importer" ,perl-importer)))
-    (home-page "http://search.cpan.org/dist/Sub-Info//")
+    (home-page "https://metacpan.org/release/Sub-Info")
     (synopsis "Tool to inspect subroutines")
     (description "This package provides tools for inspecting subroutines
 in Perl.")
@@ -7690,7 +7682,7 @@ in Perl.")
         (base32
          "03zgk1yh128gciyx3q77zxzxg9kf8yy2gm46gdxqi24mcykngrb1"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Sub-Install/")
+    (home-page "https://metacpan.org/release/Sub-Install")
     (synopsis "Install subroutines into packages easily")
     (description
      "Sub::Install makes it easy to install subroutines into packages without
@@ -7713,7 +7705,7 @@ can see them.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-devel-checkbin" ,perl-devel-checkbin)))
-    (home-page "http://search.cpan.org/dist/Sub-Name/")
+    (home-page "https://metacpan.org/release/Sub-Name")
     (synopsis "(Re)name a sub")
     (description "Assigns a new name to referenced sub.  If package
 specification is omitted in the name, then the current package is used.  The
@@ -7738,7 +7730,7 @@ return value is the sub.")
      `(("perl-test-fatal" ,perl-test-fatal)))
     (propagated-inputs
      `(("perl-sub-name" ,perl-sub-name)))
-    (home-page "http://search.cpan.org/dist/Sub-Quote/")
+    (home-page "https://metacpan.org/release/Sub-Quote")
     (synopsis "Efficient generation of subroutines via string eval")
     (description "Sub::Quote provides an efficient generation of subroutines
 via string eval.")
@@ -7757,7 +7749,7 @@ via string eval.")
         (base32
          "1yzxqsim8vpavzqm2wfksh8dpmy6qbr9s3hdqqicp38br3lzd4qg"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Sub-Uplevel/")
+    (home-page "https://metacpan.org/release/Sub-Uplevel")
     (synopsis "Apparently run a function in a higher stack frame")
     (description "Like Tcl's uplevel() function, but not quite so dangerous.
 The idea is just to fool caller().  All the really naughty bits of Tcl's
@@ -7780,7 +7772,7 @@ uplevel() are avoided.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-sub-identify" ,perl-sub-identify)))
-    (home-page "http://search.cpan.org/dist/SUPER/")
+    (home-page "https://metacpan.org/release/SUPER")
     (synopsis "Control superclass method dispatching")
     (description
      "When subclassing a class, you may occasionally want to dispatch control to
@@ -7803,7 +7795,7 @@ support for run-time mix-ins and roles.")
         (base32
          "12cbncsfxbwg1w3p1qmymfbqdb22kmyajxzdnxnxbq5xjl6yncha"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/SVG/")
+    (home-page "https://metacpan.org/release/SVG")
     (synopsis "Perl extension for generating SVG documents")
     (description "SVG is a Perl module which generates a nested data structure
 containing the DOM representation of an SVG (Scalable Vector Graphics) image.
@@ -7825,7 +7817,7 @@ animation content.")
         (base32
          "0xbdjdgzfj9zwa4j3ipr8bfk7bcici4hk89hq5d27rhg2isljd9i"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Switch/")
+    (home-page "https://metacpan.org/release/Switch")
     (synopsis "Switch statement for Perl")
     (description "Switch is a Perl module which implements a generalized case
 mechanism.  The module augments the standard Perl syntax with two new
@@ -7878,8 +7870,7 @@ TODO: {
     (description
      "Sys::CPU is a module for counting the number of CPUs on a system, and
 determining their type and clock speed.")
-    (home-page (string-append "http://search.cpan.org/~mzsanford//"
-                              "Sys-CPU-" version))
+    (home-page "https://metacpan.org/release/MZSANFORD/Sys-CPU-0.61")
     (license (package-license perl))))
 
 (define-public perl-sys-hostname-long
@@ -7896,7 +7887,7 @@ determining their type and clock speed.")
          "1jv5n8jv48c1p8svjsigyxndv1ygsq8wgwj9c7ypx1vaf3rns679"))))
     (build-system perl-build-system)
     (arguments `(#:tests? #f))          ;no `hostname' during build
-    (home-page "http://search.cpan.org/dist/Sys-Hostname-Long/")
+    (home-page "https://metacpan.org/release/Sys-Hostname-Long")
     (synopsis "Get full hostname in Perl")
     (description "Sys::Hostname::Long tries very hard to get the full hostname
 of a system.")
@@ -7924,7 +7915,7 @@ of a system.")
                               (string-append (getcwd) ":"
                                              (getenv "PERL5LIB")))
                       #t)))))
-    (home-page "http://search.cpan.org/dist/Task-Weaken/")
+    (home-page "https://metacpan.org/release/Task-Weaken")
     (synopsis "Ensure that a platform has weaken support")
     (description "One recurring problem in modules that use Scalar::Util's
 weaken function is that it is not present in the pure-perl variant.  If
@@ -7950,7 +7941,7 @@ error encouraging the user to seek support.")
     (propagated-inputs
      `(("perl-appconfig" ,perl-appconfig)
        ("perl-test-leaktrace" ,perl-test-leaktrace)))
-    (home-page "http://search.cpan.org/dist/Template-Toolkit/")
+    (home-page "https://metacpan.org/release/Template-Toolkit")
     (synopsis "Template processing system for Perl")
     (description "The Template Toolkit is a collection of modules which
 implement an extensible template processing system.  It was originally
@@ -7974,7 +7965,7 @@ documents: HTML, XML, POD, PostScript, LaTeX, and so on.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-template-toolkit" ,perl-template-toolkit)))
-    (home-page "http://search.cpan.org/dist/Template-Timer/")
+    (home-page "https://metacpan.org/release/Template-Timer")
     (synopsis "Profiling for Template Toolkit")
     (description "Template::Timer provides inline profiling of the template
 processing in Perl code.")
@@ -7995,7 +7986,7 @@ processing in Perl code.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/Term-Encoding/")
+    (home-page "https://metacpan.org/release/Term-Encoding")
     (synopsis "Detect encoding of the current terminal")
     (description "Term::Encoding is a simple module to detect the encoding of
 the current terminal expects in various ways.")
@@ -8020,7 +8011,7 @@ the current terminal expects in various ways.")
     (propagated-inputs
      `(("perl-class-methodmaker" ,perl-class-methodmaker)
        ("perl-term-readkey" ,perl-term-readkey)))
-    (home-page "http://search.cpan.org/dist/Term-ProgressBar/")
+    (home-page "https://metacpan.org/release/Term-ProgressBar")
     (synopsis "Progress meter on a standard terminal")
     (description "Term::ProgressBar provides a simple progress bar on the
 terminal, to let the user know that something is happening, roughly how much
@@ -8044,7 +8035,7 @@ stuff has been done, and maybe an estimate at how long remains.")
      `(("perl-io-interactive" ,perl-io-interactive)
        ("perl-term-progressbar" ,perl-term-progressbar)
        ("perl-test-mockobject" ,perl-test-mockobject)))
-    (home-page "http://search.cpan.org/dist/Term-ProgressBar-Quiet/")
+    (home-page "https://metacpan.org/release/Term-ProgressBar-Quiet")
     (synopsis "Progress meter if run interactively")
     (description "Term::ProgressBar is a wonderful module for showing progress
 bars on the terminal.  This module acts very much like that module when it is
@@ -8067,7 +8058,7 @@ a cron job) then it does not show the progress bar.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-term-progressbar-quiet" ,perl-term-progressbar-quiet)))
-    (home-page "http://search.cpan.org/dist/Term-ProgressBar-Simple/")
+    (home-page "https://metacpan.org/release/Term-ProgressBar-Simple")
     (synopsis "Simple progress bars")
     (description "Term::ProgressBar::Simple tells you how much work has been
 done, how much is left to do, and estimate how long it will take.")
@@ -8086,7 +8077,7 @@ done, how much is left to do, and estimate how long it will take.")
         (base32
          "0hdj5mldpj3pyprd4hbbalfx9yjgi5p59gg2ixk9808f5v7q74sa"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/TermReadKey/")
+    (home-page "https://metacpan.org/release/TermReadKey")
     (synopsis "Simple terminal control")
     (description "This module, ReadKey, provides ioctl control for terminals
 so the input modes can be changed (thus allowing reads of a single character
@@ -8112,7 +8103,7 @@ screen size, and retrieval/modification of the control characters.")
      `(("perl-devel-hide" ,perl-devel-hide)))
     (propagated-inputs
      `(("perl-term-size-perl" ,perl-term-size-perl)))
-    (home-page "http://search.cpan.org/dist/Term-Size-Any/")
+    (home-page "https://metacpan.org/release/Term-Size-Any")
     (synopsis "Retrieve terminal size")
     (description "This is a unified interface to retrieve terminal size.  It
 loads one module of a list of known alternatives, each implementing some way
@@ -8133,7 +8124,7 @@ the job on behalf of @code{Term::Size::Any}.")
         (base32
          "1rvm91bhdlxfwx5zka023p7szf2s7gm16wl27qiivvj66svsl6lc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Term-Size-Perl/")
+    (home-page "https://metacpan.org/release/Term-Size-Perl")
     (synopsis "Perl extension for retrieving terminal size (Perl version)")
     (description "This is yet another implementation of @code{Term::Size}.
 Now in pure Perl, with the exception of a C probe run at build time.")
@@ -8154,7 +8145,7 @@ Now in pure Perl, with the exception of a C probe run at build time.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-importer" ,perl-importer)))
-    (home-page "http://search.cpan.org/dist/Term-Table//")
+    (home-page "https://metacpan.org/release/Term-Table")
     (synopsis "Format a header and rows into a table")
     (description "This module is able to generically format rows of data
 into tables.")
@@ -8174,7 +8165,7 @@ into tables.")
          "0a6zkchc0apvzkch6z18cx6h97xfiv50r7n4xhg90x8dvk75qzcs"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Text-Aligner/")
+    (home-page "https://metacpan.org/release/Text-Aligner")
     (synopsis "Align text")
     (description "Text::Aligner exports a single function, align(), which is
 used to justify strings to various alignment styles.")
@@ -8193,7 +8184,7 @@ used to justify strings to various alignment styles.")
         (base32
          "1j4jjw6bg6ik8cn1mimw54rvg4h0qf4hm9k63y9572sny3w56xq5"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-Balanced/")
+    (home-page "https://metacpan.org/release/Text-Balanced")
     (synopsis "Extract delimited text sequences from strings")
     (description "The Text::Balanced module can be used to extract delimited
 text sequences from strings.")
@@ -8212,7 +8203,7 @@ text sequences from strings.")
         (base32
          "05a1nayxv04n0hx7y3m8327ijm34k9nhngrbxl18zmgzpawqynww"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-CSV/")
+    (home-page "https://metacpan.org/release/Text-CSV")
     (synopsis "Manipulate comma-separated values")
     (description "Text::CSV provides facilities for the composition and
 decomposition of comma-separated values.  An instance of the Text::CSV class
@@ -8232,7 +8223,7 @@ can combine fields into a CSV string and parse a CSV string into fields.")
         (base32
          "06zlfbqrwbl0g2g3bhk6046yy5pf2rz80fzcp8aj47rnswz2yx5k"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-CSV_XS/")
+    (home-page "https://metacpan.org/release/Text-CSV_XS")
     (synopsis "Rountines for manipulating CSV files")
     (description "@code{Text::CSV_XS} provides facilities for the composition
 and decomposition of comma-separated values.  An instance of the
@@ -8257,7 +8248,7 @@ and escapes.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-algorithm-diff" ,perl-algorithm-diff)))
-    (home-page "http://search.cpan.org/dist/Text-Diff/")
+    (home-page "https://metacpan.org/release/Text-Diff")
     (synopsis "Perform diffs on files and record sets")
     (description "Text::Diff provides a basic set of services akin to the GNU
 diff utility.  It is not anywhere near as feature complete as GNU diff, but it
@@ -8283,7 +8274,7 @@ generally slower on larger files.")
      `(("perl-module-build" ,perl-module-build)
        ("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/Text-Format/")
+    (home-page "https://metacpan.org/release/Text-Format")
     (synopsis "Various subroutines to format text")
     (description "This package provides functions to format text in various
 ways like centering, paragraphing, and converting tabs to spaces and spaces
@@ -8304,7 +8295,7 @@ to tabs.")
          "11sj62fynfgwrlgkv5a051cq6yn0pagxqjsz27dxx8phsd4wv706"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Text-Glob/")
+    (home-page "https://metacpan.org/release/Text-Glob")
     (synopsis "Match globbing patterns against text")
     (description "Text::Glob implements glob(3) style matching that can be
 used to match against text, rather than fetching names from a file system.  If
@@ -8328,7 +8319,7 @@ you want to do full file globbing use the File::Glob module instead.")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
     (home-page
-     "http://search.cpan.org/dist/Text-NeatTemplate/")
+     "https://metacpan.org/release/Text-NeatTemplate")
     (synopsis "Fast, middleweight template engine")
     (description
      "Text::NeatTemplate provides a simple, middleweight but fast
@@ -8349,7 +8340,7 @@ yet need more features than simple variable substitution.")
         (base32
          "0sh47svzz0wm993ywfgpn0fvhajl2sj5hcnf5zxjz02in6ihhjnb"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-Roman/")
+    (home-page "https://metacpan.org/release/Text-Roman")
     (synopsis "Convert between Roman and Arabic algorisms")
     (description "This package provides functions to convert between Roman and
 Arabic algorisms.  It supports both conventional Roman algorisms (which range
@@ -8370,7 +8361,7 @@ algorism to indicate multiplication by 1000.")
         (base32
          "14sjmdcy7s73sk740g3ccmzmwhwd52x5ay3bjmibjlql1cag70ld"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-SimpleTable/")
+    (home-page "https://metacpan.org/release/Text-SimpleTable")
     (synopsis "Simple ASCII tables")
     (description "Text::SimpleTable draws simple ASCII tables.")
     (license artistic2.0)))
@@ -8392,7 +8383,7 @@ algorism to indicate multiplication by 1000.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-text-aligner" ,perl-text-aligner)))
-    (home-page "http://search.cpan.org/dist/Text-Table/")
+    (home-page "https://metacpan.org/release/Text-Table")
     (synopsis "Organize Data in Tables")
     (description "Text::Table renders plaintext tables.")
     (license x11)))
@@ -8413,7 +8404,7 @@ algorism to indicate multiplication by 1000.")
          "1z781cgz7wbn80lf3kqr2ad0pg6g1wlnim0822h8liw28k3l5msh"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/Text-Template/")
+     "https://metacpan.org/release/Text-Template")
     (synopsis
      "Expand template text with embedded Perl")
     (description
@@ -8436,7 +8427,7 @@ evaluate the little programs and replace them with their values.")
         (base32
          "1mnnq57amh0bs6z2ggkmgnn4hz8mqc9lfhr66xv2bsnlvhg7c7fb"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Text-Unidecode/")
+    (home-page "https://metacpan.org/release/Text-Unidecode")
     (synopsis "Provide plain ASCII transliterations of Unicode text")
     (description "Text::Unidecode provides a function, unidecode(...) that
 takes Unicode data and tries to represent it in US-ASCII characters (i.e., the
@@ -8458,7 +8449,7 @@ system.")
        (sha256
         (base32 "047i22mdnf7fa0h9w5jhqrjbg561l5jxk8xqzwh6zbmwlac4qf98"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/threads/")
+    (home-page "https://metacpan.org/release/threads")
     (synopsis "Perl interpreter-based threads")
     (description "This module exposes interpreter threads to the Perl level.")
     (license perl-license)))
@@ -8482,7 +8473,7 @@ system.")
      `(("perl-devel-stacktrace" ,perl-devel-stacktrace)
        ("perl-module-runtime" ,perl-module-runtime)
        ("perl-moo" ,perl-moo)))
-    (home-page "http://search.cpan.org/dist/Throwable/")
+    (home-page "https://metacpan.org/release/Throwable")
     (synopsis "Role for classes that can be thrown")
     (description "Throwable is a role for classes that are meant to be thrown
 as exceptions to standard program flow.")
@@ -8521,7 +8512,7 @@ approximately follow the suggestions in the Perl Style Guide.")
         (base32
          "0i9xq2qm50p2ih24265jndp2x8hfq7ap0d88nrlv5yaad4hxhc7k"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Tie-Cycle/")
+    (home-page "https://metacpan.org/release/Tie-Cycle")
     (synopsis "Cycle through a list of values")
     (description "You use @code{Tie::Cycle} to go through a list over and over
 again.  Once you get to the end of the list, you go back to the beginning.")
@@ -8541,7 +8532,7 @@ again.  Once you get to the end of the list, you go back to the beginning.")
           "0mmg9iyh42syal3z1p2pn9airq65yrkfs66cnqs9nz76jy60pfzs"))))
   (build-system perl-build-system)
   (native-inputs `(("perl-module-build" ,perl-module-build)))
-  (home-page "http://search.cpan.org/dist/Tie-IxHash/")
+  (home-page "https://metacpan.org/release/Tie-IxHash")
   (synopsis "Ordered associative arrays for Perl")
   (description "This Perl module implements Perl hashes that preserve the
 order in which the hash elements were added.  The order is not affected when
@@ -8565,7 +8556,7 @@ operations can also be performed on the IxHash.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-test-simple" ,perl-test-simple)))
-    (home-page "http://search.cpan.org/dist/Tie-ToObject/")
+    (home-page "https://metacpan.org/release/Tie-ToObject")
     (synopsis "Tie to an existing Perl object")
     (description "This class provides a tie constructor that returns the
 object it was given as it's first argument.  This way side effects of calling
@@ -8589,7 +8580,7 @@ $object->TIEHASH are avoided.")
      `(("perl-module-install" ,perl-module-install)
        ("perl-test-pod" ,perl-test-pod)
        ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
-    (home-page "http://search.cpan.org/dist/Time-Duration/")
+    (home-page "https://metacpan.org/release/Time-Duration")
     (synopsis "English expression of durations")
     (description "This module provides functions for expressing durations in
 rounded or exact terms.")
@@ -8612,7 +8603,7 @@ rounded or exact terms.")
      `(("perl-time-duration" ,perl-time-duration)))
     (propagated-inputs
      `(("perl-exporter-lite" ,perl-exporter-lite)))
-    (home-page "http://search.cpan.org/dist/Time-Duration-Parse/")
+    (home-page "https://metacpan.org/release/Time-Duration-Parse")
     (synopsis "Parse time duration strings")
     (description "Time::Duration::Parse is a module to parse human readable
 duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
@@ -8631,7 +8622,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
                (base32
                 "07jbydcdzpjm6i4nidci0rlklx4kla210fsl6zishw0yq5di9yjv"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Time-HiRes/")
+    (home-page "https://metacpan.org/release/Time-HiRes")
     (synopsis "High resolution alarm, sleep, gettimeofday, interval timers")
     (description "This package implements @code{usleep}, @code{ualarm}, and
 @code{gettimeofday} for Perl, as well as wrappers to implement @code{time},
@@ -8651,7 +8642,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
         (base32
          "0jgvd6v93hlrcmy56yxbm4yrhzi8yvrq8c3xffpgh28af01wmb5j"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Time-Local/")
+    (home-page "https://metacpan.org/release/Time-Local")
     (synopsis "Efficiently compute time from local and GMT time")
     (description "This module provides functions that are the inverse of
 built-in perl functions localtime() and gmtime().  They accept a date as a
@@ -8672,7 +8663,7 @@ the system epoch.")
        (sha256
         (base32 "0hbg99v8xqy3nx6nrjpwh1w6xwqpfflz0djkbdd72kvf8zvglwb9"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Time-Piece/")
+    (home-page "https://metacpan.org/release/Time-Piece")
     (synopsis "Object-Oriented time objects")
     (description
      "This module replaces the standard @code{localtime} and @code{gmtime}
@@ -8694,7 +8685,7 @@ still work as expected.")
         (base32
          "11lf54akr9nbivqkjrhvkmfdgkbhw85sq0q4mak56n6bf542bgbm"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/TimeDate/")
+    (home-page "https://metacpan.org/release/TimeDate")
     (synopsis "Date parsing/formatting subroutines")
     (description "This module provides routines for parsing date string into
 time values and formatting dates into ASCII strings.")
@@ -8717,7 +8708,7 @@ time values and formatting dates into ASCII strings.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-timedate" ,perl-timedate))) ;For Date::Parse
-    (home-page "http://search.cpan.org/dist/Time-Mock/")
+    (home-page "https://metacpan.org/release/Time-Mock")
     (synopsis "Shift and scale time")
     (description "This module allows you to speed up your sleep(), alarm(),
 and time() calls.")
@@ -8741,7 +8732,7 @@ and time() calls.")
        ("perl-test-exception" ,perl-test-exception)))
     (propagated-inputs
      `(("perl-scalar-list-utils" ,perl-scalar-list-utils)))
-    (home-page "http://search.cpan.org/dist/Tree-Simple/")
+    (home-page "https://metacpan.org/release/Tree-Simple")
     (synopsis "Simple tree object")
     (description "This module in a fully object-oriented implementation of a
 simple n-ary tree.")
@@ -8766,7 +8757,7 @@ simple n-ary tree.")
     (propagated-inputs
      `(("perl-tree-simple" ,perl-tree-simple)
        ("perl-base" ,perl-base)))
-    (home-page "http://search.cpan.org/dist/Tree-Simple-VisitorFactory/")
+    (home-page "https://metacpan.org/release/Tree-Simple-VisitorFactory")
     (synopsis "Factory object for dispensing Visitor objects")
     (description "This module is a factory for dispensing
 Tree::Simple::Visitor::* objects.")
@@ -8785,7 +8776,7 @@ Tree::Simple::Visitor::* objects.")
         (base32
          "068vdbpacfawc3lkfs0b82xxl27h3l0gj14iada3vlwk8rps9yv0"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Try-Tiny/")
+    (home-page "https://metacpan.org/release/Try-Tiny")
     (synopsis "Minimal try/catch with proper preservation of $@@")
     (description "This module provides bare bones try/catch/finally statements
 that are designed to minimize common mistakes with eval blocks, and nothing
@@ -8811,7 +8802,7 @@ else.")
     (propagated-inputs
      `(("perl-exporter-tiny" ,perl-exporter-tiny)
        ("perl-hash-fieldhash" ,perl-hash-fieldhash)))
-    (home-page "http://search.cpan.org/dist/Type-Tie/")
+    (home-page "https://metacpan.org/release/Type-Tie")
     (synopsis "Tie a variable to a type constraint")
     (description "This module exports a single function: @code{ttie}.  It ties
 a variable to a type constraint, ensuring that whatever values stored in the
@@ -8845,7 +8836,7 @@ variable conform.")
        ("perl-ref-util-xs" ,perl-ref-util-xs)
        ("perl-regexp-util" ,perl-regexp-util)
        ("perl-type-tie" ,perl-type-tie)))
-    (home-page "http://search.cpan.org/dist/Type-Tiny/")
+    (home-page "https://metacpan.org/release/Type-Tiny")
     (synopsis "Tiny, yet Moo(se)-compatible type constraint")
     (description "@code{Type::Tiny} is a small class for writing type
 constraints, inspired by Moose's type constraint API.  It has only one
@@ -8867,7 +8858,7 @@ be used with Moose, Mouse and Moo (or none of the above).")
         (base32
          "05nbr898cvjjh1wsy55l84zasx65gijdxc6dnn558ihns8zx6gm9"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Type-Tiny-XS/")
+    (home-page "https://metacpan.org/release/Type-Tiny-XS")
     (synopsis "Provides an XS boost for some of Type::Tiny's built-in type constraints")
     (description "This module is optionally used by @code{Type::Tiny} to
 provide faster, C-based implementations of some type constraints.  This
@@ -8893,7 +8884,7 @@ so other data validation frameworks might also consider using it.")
        ("perl-path-tiny" ,perl-path-tiny)
        ("perl-type-tiny" ,perl-type-tiny)
        ("perl-exporter-tiny" ,perl-exporter-tiny)))
-    (home-page "http://search.cpan.org/dist/Types-Path-Tiny/")
+    (home-page "https://metacpan.org/release/Types-Path-Tiny")
     (synopsis "Types and coercions for Moose and Moo")
     (description "This module provides @code{Path::Tiny} types for Moose, Moo,
 etc.  It handles two important types of coercion: coercing objects with
@@ -8916,7 +8907,7 @@ to ensure that files or directories exist.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-common-sense" ,perl-common-sense)))
-    (home-page "http://search.cpan.org/dist/Types-Serialiser/")
+    (home-page "https://metacpan.org/release/Types-Serialiser")
     (synopsis "Data types for common serialisation formats")
     (description "This module provides some extra datatypes that are used by
 common serialisation formats such as JSON or CBOR.")
@@ -8944,7 +8935,7 @@ common serialisation formats such as JSON or CBOR.")
                               (string-append (getcwd) ":"
                                              (getenv "PERL5LIB")))
                       #t)))))
-    (home-page "http://search.cpan.org/dist/Unicode-Normalize/")
+    (home-page "https://metacpan.org/release/Unicode-Normalize")
     (synopsis "Unicode normalization forms")
     (description "This Perl module provides Unicode normalization forms.")
     (license (package-license perl))))
@@ -8974,7 +8965,7 @@ common serialisation formats such as JSON or CBOR.")
              #t)))))
     (propagated-inputs
      `(("perl-unicode-normalize" ,perl-unicode-normalize)))
-    (home-page "http://search.cpan.org/dist/Unicode-Collate/")
+    (home-page "https://metacpan.org/release/Unicode-Collate")
     (synopsis "Unicode collation algorithm")
     (description "This package provides tools for sorting and comparing
 Unicode data.")
@@ -8996,7 +8987,7 @@ Unicode data.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-mime-charset" ,perl-mime-charset)))
-    (home-page "http://search.cpan.org/dist/Unicode-LineBreak/")
+    (home-page "https://metacpan.org/release/Unicode-LineBreak")
     (synopsis "Unicode line breaking algorithm")
     (description
      "@code{Unicode::LineBreak} implements the line breaking algorithm
@@ -9021,7 +9012,7 @@ defined by Annex #11 is used to determine breaking positions.")
        ("perl-test-leaktrace" ,perl-test-leaktrace)
        ("perl-variable-magic" ,perl-variable-magic)
        ("perl-test-pod" ,perl-test-pod)))
-    (home-page "http://search.cpan.org/dist/Unicode-UTF8/")
+    (home-page "https://metacpan.org/release/Unicode-UTF8")
     (synopsis "Encoding and decoding of UTF-8 encoding form")
     (description
      "This module provides functions to encode and decode UTF-8 encoding form
@@ -9041,7 +9032,7 @@ as specified by Unicode and ISO/IEC 10646:2011.")
         (base32
          "03wr25zznbfn1g8zmmq3g6a6288xr30priwvm75y4vvqfkrajbaj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/UNIVERSAL-can/")
+    (home-page "https://metacpan.org/release/UNIVERSAL-can")
     (synopsis "UNIVERSAL::can() reimplementation")
     (description "This module attempts to work around people calling
 UNIVERSAL::can() as a function, which it is not.")
@@ -9062,7 +9053,7 @@ UNIVERSAL::can() as a function, which it is not.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build-tiny" ,perl-module-build-tiny)))
-    (home-page "http://search.cpan.org/dist/UNIVERSAL-isa/")
+    (home-page "https://metacpan.org/release/UNIVERSAL-isa")
     (synopsis "UNIVERSAL::isa() reimplementation")
     (description "This module attempts to recover from people calling
 UNIVERSAL::isa as a function.")
@@ -9082,7 +9073,7 @@ UNIVERSAL::isa as a function.")
         (base32
          "1v9qdg80ng6dzyzs7cn8sb6mn8ym042i32lcnpd478b7g6l3d9xj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/UNIVERSAL-require/")
+    (home-page "https://metacpan.org/release/UNIVERSAL-require")
     (synopsis "Require modules from a variable")
     (description "This module lets you require other modules where the module
 name is in a variable, something you can't do with the @code{require}
@@ -9102,7 +9093,7 @@ built-in.")
         (base32
          "0p31dclnj47k4hj35rzay9pzxasl3gq46kzwqalhdw1kgr8ii6iz"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Variable-Magic/")
+    (home-page "https://metacpan.org/release/Variable-Magic")
     (synopsis "Associate user-defined magic to variables from Perl")
     (description "Magic is Perl's way of enhancing variables.  This mechanism
 lets the user add extra data to any variable and hook syntactical
@@ -9126,7 +9117,7 @@ having to write a single line of XS.")
         (base32
          "1gjzs570i67ywbv967g8ylb5sg59clwmyrl2yix3jl70dhn55070"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/XML-Writer/")
+    (home-page "https://metacpan.org/release/XML-Writer")
     (synopsis "Easily generate well-formed, namespace-aware XML")
     (description "@code{XML::Writer} is a simple Perl module for writing XML
 documents: it takes care of constructing markup and escaping data correctly.
@@ -9154,7 +9145,7 @@ attribute names.")
      `(("perl-extutils-depends" ,perl-extutils-depends)
        ("perl-module-install" ,perl-module-install)
        ("perl-test-fatal" ,perl-test-fatal)))
-    (home-page "http://search.cpan.org/dist/XS-Object-Magic/")
+    (home-page "https://metacpan.org/release/XS-Object-Magic")
     (synopsis "Opaque, extensible XS pointer backed objects using sv_magic")
     (description
      "This way of associating structs with Perl space objects is designed to
@@ -9178,7 +9169,7 @@ neither visible nor modifiable from Perl space).")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-yaml" ,perl-test-yaml)))
-    (home-page "http://search.cpan.org/dist/YAML/")
+    (home-page "https://metacpan.org/release/YAML")
     (synopsis "YAML for Perl")
     (description "The YAML.pm module implements a YAML Loader and Dumper based
 on the YAML 1.0 specification.")
@@ -9200,7 +9191,7 @@ on the YAML 1.0 specification.")
          "06msvj3vmjszl5zj1k7g47ll0kkds9gdb5sky0q27lh4zw1vlj33"))))
     (build-system perl-build-system)
     (home-page
-     "http://search.cpan.org/dist/YAML-LibYAML/")
+     "https://metacpan.org/release/YAML-LibYAML")
     (synopsis
      "Perl YAML Serialization using XS and libyaml")
     (description
@@ -9226,7 +9217,7 @@ best YAML support to date.")
        ("perl-module-build-tiny" ,perl-module-build-tiny)))
     (arguments
      `(#:tests? #f))                    ;requires Test::More >= 0.99
-    (home-page "http://search.cpan.org/dist/YAML-Tiny/")
+    (home-page "https://metacpan.org/release/YAML-Tiny")
     (synopsis "Read/Write YAML files")
     (description "YAML::Tiny is a perl class for reading and writing
 YAML-style files, written with as little code as possible, reducing load time
@@ -9251,7 +9242,7 @@ and memory overhead.")
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
     (home-page
-     "http://search.cpan.org/dist/Parse-RecDescent/")
+     "https://metacpan.org/release/Parse-RecDescent")
     (synopsis "Generate recursive-descent parsers")
     (description
      "@code{Parse::RecDescent} can incrementally generate top-down
@@ -9273,7 +9264,7 @@ recursive-descent text parsers from simple yacc-like grammar specifications.")
         (base32
          "1r8kbyk0qd4ficmabj753kjpq0ib0csk01169w7jxflg62cfj41q"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Parse-Yapp/")
+    (home-page "https://metacpan.org/release/Parse-Yapp")
     (synopsis "Generate and use LALR parsers")
     (description "This package compiles yacc-like @dfn{Look Ahead LR} (LALR)
 grammars to generate Perl object oriented parser modules.")
@@ -9300,7 +9291,7 @@ grammars to generate Perl object oriented parser modules.")
      `(("perl-cpan-meta-requirements" ,perl-cpan-meta-requirements)
        ("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml)
        ("perl-parse-cpan-meta" ,perl-parse-cpan-meta)))
-    (home-page "http://search.cpan.org/dist/CPAN-Meta/")
+    (home-page "https://metacpan.org/release/CPAN-Meta")
     (synopsis "Distribution metadata for a CPAN dist")
     (description "Software distributions released to the CPAN include a
 META.json or, for older distributions, META.yml, which describes the
@@ -9324,7 +9315,7 @@ methods for interrogating that data.")
         (base32
          "1a8zflgaayycmn3zvd3n64yypa4jyl1va0h51wpr5w46irg69608"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/CPAN-Meta-Requirements/")
+    (home-page "https://metacpan.org/release/CPAN-Meta-Requirements")
     (synopsis "Set of version requirements for a CPAN dist")
     (description "A CPAN::Meta::Requirements object models a set of version
 constraints like those specified in the META.yml or META.json files in CPAN
@@ -9348,7 +9339,7 @@ representation.")
     (build-system perl-build-system)
     (arguments
      `(#:tests? #f))                    ;Tests require Test::More >= 0.99
-    (home-page "http://search.cpan.org/dist/CPAN-Meta-YAML/")
+    (home-page "https://metacpan.org/release/CPAN-Meta-YAML")
     (synopsis "Read and write a subset of YAML for CPAN Meta files")
     (description "This module implements a subset of the YAML specification
 for use in reading and writing CPAN metadata files like META.yml and
@@ -9370,7 +9361,7 @@ MYMETA.yml.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cpan-meta" ,perl-cpan-meta)))
-    (home-page "http://search.cpan.org/dist/Module-Build/")
+    (home-page "https://metacpan.org/release/Module-Build")
     (synopsis "Build and install Perl modules")
     (description "@code{Module::Build} is a system for building, testing, and
 installing Perl modules; it used to be part of Perl itself until version 5.22,
@@ -9397,7 +9388,7 @@ system---most of the @code{Module::Build} code is pure-Perl.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cpan-meta-yaml" ,perl-cpan-meta-yaml)))
-    (home-page "http://search.cpan.org/dist/Parse-CPAN-Meta/")
+    (home-page "https://metacpan.org/release/DAGOLDEN/Parse-CPAN-Meta-1.4422")
     (synopsis "Parse META.yml and META.json CPAN metadata files")
     (description "Parse::CPAN::Meta is a parser for META.json and META.yml
 files, using JSON::PP and/or CPAN::Meta::YAML.")
@@ -9416,7 +9407,7 @@ files, using JSON::PP and/or CPAN::Meta::YAML.")
         (base32
          "0x9n0617gjjcqa4nk5biiwkxdi90xpdfg6z07gjr009qjg3bkah6"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Scalar-List-Utils/")
+    (home-page "https://metacpan.org/release/Scalar-List-Utils")
     (synopsis "Common Scalar and List utility subroutines")
     (description "This package contains a selection of subroutines that people
 have expressed would be nice to have in the perl core, but the usage would not
@@ -9440,7 +9431,7 @@ such that being individual extensions would be wasteful.")
             "1lgc2rb3b5a4lxvbq0cbg08qk0n2i88srxbsz93bwi3razpxxr7k"))))
     (build-system perl-build-system)
     (home-page
-      "http://search.cpan.org/dist/Shell-Command/")
+      "https://metacpan.org/release/Shell-Command")
     (synopsis
       "Cross-platform functions emulating common shell commands")
     (description
@@ -9469,7 +9460,7 @@ such that being individual extensions would be wasteful.")
   (inputs
     `(("perl-class-xsaccessor" ,perl-class-xsaccessor)))
   (home-page
-    "http://search.cpan.org/dist/File-Find-Object/")
+    "https://metacpan.org/release/File-Find-Object")
   (synopsis
     "Object-oriented File::Find replacement in Perl")
   (description "File::Find::Object is an object-oriented
@@ -9499,7 +9490,7 @@ File::Find replacement in Perl.")
       ("perl-number-compare" ,perl-number-compare)
       ("perl-text-glob" ,perl-text-glob)))
   (home-page
-    "http://search.cpan.org/dist/File-Find-Object-Rule/")
+    "https://metacpan.org/release/File-Find-Object-Rule")
   (synopsis
     "Alternative interface to File::Find::Object")
   (description "File::Find::Object::Rule is an alternative Perl
@@ -9522,7 +9513,7 @@ interface to File::Find::Object.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-text-glob" ,perl-text-glob)))
-    (home-page "http://search.cpan.org/dist/File-Finder/")
+    (home-page "https://metacpan.org/release/File-Finder")
     (synopsis "Wrapper for @code{File::Find} ala @code{find(1)}")
     (description
      "@code{File::Find} is great, but constructing the wanted routine can
@@ -9553,7 +9544,7 @@ used as the head of many different sequences.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-string" ,perl-io-string)))
-    (home-page "http://search.cpan.org/dist/Font-TTF/")
+    (home-page "https://metacpan.org/release/Font-TTF")
     (synopsis "TTF font support for Perl")
     (description "This package provides a Perl module for TrueType/OpenType
 font hacking.  It supports reading, processing and writing of the following
@@ -9655,7 +9646,7 @@ till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
      `(("perl-number-compare" ,perl-number-compare)
        ("perl-text-glob" ,perl-text-glob)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Path-Iterator-Rule/")
+    (home-page "https://metacpan.org/release/Path-Iterator-Rule")
     (synopsis "Iterative, recursive file finder")
     (description "Path::Iterator::Rule iterates over files and directories to
 identify ones matching a user-defined set of rules.  The API is based heavily
@@ -9696,7 +9687,7 @@ arduous to type for one-liners.")
         (base32
          "1njgr2zly9nrwvfrjhgk9dqq48as1pmbb2rs4bh3irvla75v7azg"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Pod-Constants/")
+    (home-page "https://metacpan.org/release/Pod-Constants")
     (synopsis "Include constants from POD")
     (description "This module allows you to specify those constants that
 should be documented in your POD, and pull them out a run time in a fairly
@@ -9724,7 +9715,7 @@ lookup in %INC or by assuming it is $0 if the caller is @code{main}
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/Regexp-Pattern/")
+    (home-page "https://metacpan.org/release/Regexp-Pattern")
     (synopsis "Collection of regexp patterns")
     (description "Regexp::Pattern is a convention for organizing reusable
 regexp patterns in modules.")
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 88fa1aba68..5b5ec89fc2 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -216,7 +216,7 @@ MTP, and much more.")
                     (lib (dirname (dirname (car pm)))))
                (wrap-program (string-append out "/bin/exiftool")
                              `("PERL5LIB" prefix (,lib)))))))))
-    (home-page "http://search.cpan.org/dist/Image-ExifTool")
+    (home-page "https://metacpan.org/release/Image-ExifTool")
     (synopsis "Program and Perl library to manipulate EXIF and other metadata")
     (description "This package provides the @code{exiftool} command and the
 @code{Image::ExifTool} Perl library to manipulate EXIF tags of digital images
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 07da23aa15..42d6d6a72a 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -166,14 +166,14 @@ performance measurement opportunites across the hardware and software stack.")
              #t)))))
     (home-page "http://www.vi-hps.org/projects/score-p/")
     (synopsis "Open Trace Format 2 library")
-    (description "The Open Trace Format 2 (OTF2) is a scalable, memory
-efficient event trace data format plus support library.")
+    (description "The Open Trace Format 2 (@dfn{OTF2}) is a scalable,
+memory-efficient event trace data format plus support library.")
     (license license:bsd-3)))
 
 (define-public opari2
   (package
     (name "opari2")
-    (version "2.0.2")
+    (version "2.0.3")
     (source
      (origin
       (method url-fetch)
@@ -182,20 +182,11 @@ efficient event trace data format plus support library.")
                   (minor (cadr parts)))
              (string-append "http://www.vi-hps.org/upload/packages/opari2/opari2-"
                             version ".tar.gz")))
-      (sha256 (base32 "1ph8l5c646bm9l5vcn8rrbjvkyi7y8yvn2ny95r6kmlzs766g3q8"))))
+      (sha256 (base32 "0v785mhw9azj3ln5v7akj5b1cxvzfkxz8kj565pfwllir7xzqbky"))))
     (build-system gnu-build-system)
     (inputs `(("gfortran" ,gfortran)))
     (native-inputs `(("gawk" ,gawk)     ;for tests
                      ("which" ,which)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'licence
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((doc (string-append (assoc-ref outputs "out")
-                                       "/share/doc/opari2")))
-               (install-file "COPYING" doc)
-               #t))))))
     (home-page "http://www.vi-hps.org/projects/score-p")
     (synopsis "OpenMP runtime performance measurement instrumenter")
     (description "OPARI2 is a source-to-source instrumentation tool for OpenMP
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 877c9c9c84..85e3170b98 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -124,7 +124,7 @@ internal RPC protocols and file formats.")
 (define-public protobuf-c
   (package
     (name "protobuf-c")
-    (version "1.3.0")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/protobuf-c/protobuf-c/"
@@ -132,7 +132,7 @@ internal RPC protocols and file formats.")
                                   "/protobuf-c-" version ".tar.gz"))
               (sha256
                (base32
-                "18aj4xfv26zjmj44zbb01wk90jl7y4aj5xvbzz4gg748kdxavjax"))))
+                "0rr2kn7804cvhdm6lzz04gz76vy0fzj15dijbr17nv8x34x2sisi"))))
     (build-system gnu-build-system)
     (inputs `(("protobuf" ,protobuf)))
     (native-inputs `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 2e98a95d4b..fd76c0c60c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1061,13 +1061,13 @@ facilities for defining, registering and looking up components.")
 (define-public python-ndg-httpsclient
   (package
     (name "python-ndg-httpsclient")
-    (version "0.5.0")
+    (version "0.5.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ndg_httpsclient" version))
               (sha256
                 (base32
-                  "12q8rjvsvjphj6lvvcka2izdjr36a5lgkygajwx6p4wh0x1za2f0"))))
+                  "0412b7i1s4vj7lz9r72nmb28h9syd4q2x89bdirkkc3a6z8awbyp"))))
     (build-system python-build-system)
     (arguments
      '(;; The tests appear to require networking.
@@ -1076,9 +1076,9 @@ facilities for defining, registering and looking up components.")
      `(("python-pyopenssl" ,python-pyopenssl)))
     (synopsis "HTTPS support for Python's httplib and urllib2")
     (description "This is a HTTPS client implementation for httplib and urllib2
-based on PyOpenSSL.  PyOpenSSL provides a more fully featured SSL implementation
-over the default provided with Python and importantly enables full verification
-of the SSL peer.")
+based on PyOpenSSL.  PyOpenSSL provides a more fully-featured SSL implementation
+over the default provided with Python and, importantly, enables full
+verification of the SSL peer.")
     (home-page "https://github.com/cedadev/ndg_httpsclient/")
     (license license:bsd-3)))
 
@@ -1350,29 +1350,23 @@ Amazon Web Services (AWS) API.")
 (define-public python-wsgiproxy2
   (package
     (name "python-wsgiproxy2")
-    (version "0.4.2")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
-       (uri (pypi-uri "WSGIProxy2" version ".zip"))
+       (uri (pypi-uri "WSGIProxy2" version ".tar.gz"))
        (sha256
         (base32
-         "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4"))))
+         "16532rjc94h3w74x52jfckf3yzsp8h6z34522jk4xgjy82hpnd7r"))))
     (build-system python-build-system)
-    (arguments
-     '(;; Wsgiproxy2's test suite requires Restkit, which does not yet fully
-       ;; support Python 3:
-       ;; https://github.com/benoitc/restkit/issues/140
-       #:tests? #f))
     (native-inputs
-     `(("unzip" ,unzip)
-       ("python-nose" ,python-nose)
-       ("python-coverage" ,python-coverage)))
+     `(("python-webtest" ,python-webtest)))
     (propagated-inputs
-     `(("python-six" ,python-six)
+     `(("python-requests" ,python-requests)
+       ("python-six" ,python-six)
+       ("python-urllib3" ,python-urllib3)
        ("python-webob" ,python-webob)))
-    (home-page
-     "https://github.com/gawel/WSGIProxy2/")
+    (home-page "https://github.com/gawel/WSGIProxy2/")
     (synopsis "WSGI Proxy with various http client backends")
     (description "WSGI turns HTTP requests into WSGI function calls.
 WSGIProxy turns WSGI function calls into HTTP requests.
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index fa5d3f5c54..730faf4557 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5591,6 +5591,9 @@ applications.")
   (package-with-python2 python-pyzmq))
 
 (define-public python-pep8
+  ;; This package has been renamed to ‘pycodestyle’ and is no longer updated.
+  ;; Its last release (1.7.1) adds only a scary warning to this effect, breaking
+  ;; some dependents' test suites, and nothing more.
   (package
     (name "python-pep8")
     (version "1.7.0")
@@ -5602,7 +5605,7 @@ applications.")
           (base32
             "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1"))))
     (build-system python-build-system)
-    (home-page "http://pep8.readthedocs.org/")
+    (home-page "https://pep8.readthedocs.org/")
     (synopsis "Python style guide checker")
     (description
      "This tools checks Python code against some of the style conventions in
@@ -7239,6 +7242,25 @@ be set via config files and/or environment variables.")
 (define-public python2-configargparse
   (package-with-python2 python-configargparse))
 
+(define-public python-argparse-manpage
+  (package
+    (name "python-argparse-manpage")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "argparse-manpage" version))
+       (sha256
+        (base32
+         "0blh31zns68anina9lba5wh81d1414s97p60zw5l0d0shhh0wj5p"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/praiskup/argparse-manpage")
+    (synopsis "Build manual page from Python's ArgumentParser object")
+    (description
+     "This package provides tools to build manual pages from Python's
+@code{ArgumentParser} object.")
+    (license license:asl2.0)))
+
 (define-public python-contextlib2
   (package
     (name "python-contextlib2")
@@ -8057,14 +8079,14 @@ alternative when librabbitmq is not available.")
 (define-public python-txamqp
   (package
     (name "python-txamqp")
-    (version "0.8.0")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "txAMQP" version))
        (sha256
         (base32
-         "1r43a66dd547mz40ikymm8y3d480cidy560fj81qc0jk4lncgmmr"))))
+         "0jd9864k3csc06kipiwzjlk9mq4054s8kzk5q1cfnxj8572s4iv4"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 64017224a7..16b9470e7c 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -150,14 +150,14 @@ anywhere.")
 (define-public samba
   (package
     (name "samba")
-    (version "4.8.3")
+    (version "4.8.4")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.samba.org/pub/samba/stable/"
                                  "samba-" version ".tar.gz"))
              (sha256
               (base32
-               "1vc21c0m7wky70hpyjhw6ph6zlzljsvivlgxy54znpaxc259lmp0"))))
+               "01jlk8xlawfp3yyhi5migcd1fy7dkavbh56in444m281kqa4s17m"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 4178a45a89..b30245ccea 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -421,7 +421,8 @@ implementation techniques and as an expository tool.")
              (patches (search-patches
                        ;; See: https://github.com/racket/racket/issues/1962
                        ;; This can be removed in whatever Racket release comes after 6.12
-                       "racket-fix-xform-issue.patch"))))
+                       "racket-fix-xform-issue.patch"
+                       "racket-store-checksum-override.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 7fdcaaf1ea..d4e0437a5b 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -44,6 +45,7 @@
   #:use-module (gnu packages man)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tex)
@@ -75,11 +77,11 @@
                (("/bin/echo") (which "echo")))
              #t)))))
     (native-inputs
-     `(("perl" ,perl)
+     `(("pcsc-lite" ,pcsc-lite) ; only required for headers
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("libusb" ,libusb)
-       ("pcsc-lite" ,pcsc-lite)))
+     `(("libusb" ,libusb)))
     (home-page "https://ccid.apdu.fr/")
     (synopsis "PC/SC driver for USB smart card devices")
     (description
@@ -218,7 +220,7 @@ website for more information about Yubico and the YubiKey.")
 (define-public opensc
   (package
     (name "opensc")
-    (version "0.17.0")
+    (version "0.18.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -226,7 +228,7 @@ website for more information about Yubico and the YubiKey.")
                     version "/opensc-" version ".tar.gz"))
               (sha256
                (base32
-                "0043jh5g7q2lyd5vnb0akwb5y349isx7vbm9wqhlgav7d20wcwxy"))))
+                "0mrpik6ifzh27ws7h0viv8nwgcdj3fp5whaldmj0zhfi1l1zzh4v"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -243,7 +245,13 @@ website for more information about Yubico and the YubiKey.")
                  (("DEFAULT_PCSC_PROVIDER=\"libpcsclite\\.so\\.1\"")
                   (string-append
                    "DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))
-               #t))))))
+               #t)))
+         (add-before 'check 'disable-broken-test
+           (lambda _
+             ;; XXX: This test is fixed in git, remove this phase for >= 0.19.
+             (substitute* "doc/tools/Makefile"
+               (("TESTS = test-manpage.sh") "TESTS = "))
+             #t)))))
     (inputs
      `(("readline" ,readline)
        ("openssl" ,openssl)
@@ -266,7 +274,7 @@ authentication, encryption and digital signatures.  OpenSC implements the PKCS
 (define-public yubico-piv-tool
   (package
     (name "yubico-piv-tool")
-    (version "1.5.0")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -274,15 +282,17 @@ authentication, encryption and digital signatures.  OpenSC implements the PKCS
                     name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1axa0lnky5gsc8yack6mpfbjh49z0czr1cv52gbgjnx2kcbpb0y1"))))
+                "1p0df35qfm2xch64hc1x6k4gpgfl4hiqph5ai30bq8w7yxa3lvfc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl)
+     `(("gengetopt" ,gengetopt)
+       ("perl" ,perl)
        ("pcsc-lite" ,pcsc-lite)
        ("openssl" ,openssl)))
     (native-inputs
      `(("doxygen" ,doxygen)
        ("graphviz" ,graphviz)
+       ("help2man" ,help2man)
        ("check" ,check)
        ("texlive-bin" ,texlive-bin)
        ("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 21d2eebaa9..9a6733d8bc 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -29,7 +29,7 @@
 (define-public skalibs
   (package
     (name "skalibs")
-    (version "2.6.4.0")
+    (version "2.7.0.0")
     (source
      (origin
       (method url-fetch)
@@ -37,10 +37,10 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "1iywavxaw398ifc35xda27cb8hx14viy3kqrzby8fqysx3qp7b1h"))))
+        "0mnprdf4w4ami0db22rwd111m037cdmn2p8xa4i8cbwxcrv4sjcn"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f ; no tests exist
+     '(#:tests? #f                      ; no tests exist
        #:phases (modify-phases %standard-phases
                   (add-after 'unpack 'reproducible
                     (lambda _
@@ -62,7 +62,7 @@ and file system operations.  It is used by all skarnet.org software.")
 (define-public execline
   (package
     (name "execline")
-    (version "2.3.0.4")
+    (version "2.5.0.1")
     (source
      (origin
       (method url-fetch)
@@ -70,7 +70,7 @@ and file system operations.  It is used by all skarnet.org software.")
                           version ".tar.gz"))
       (sha256
        (base32
-        "0jx60wjz3yj3r1wircbvd15in275pi7ggw69pbs9djhcyb48zfz4"))))
+        "0j8hwdw8wn0rv8njdza8fbgmvyjg7hqp3qlbw00i7fwskr7d21wd"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -89,7 +89,7 @@ and file system operations.  It is used by all skarnet.org software.")
                            (bin (string-append out "/bin")))
                       (wrap-program (string-append bin "/execlineb")
                         `("PATH" ":" prefix (,bin)))))))
-       #:tests? #f)) ; No tests exist.
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/execline/")
     (license isc)
     (synopsis "Non-interactive shell-like language with minimal overhead")
@@ -105,7 +105,7 @@ complexity.")))
 (define-public s6
   (package
    (name "s6")
-   (version "2.7.0.0")
+   (version "2.7.2.0")
    (source
     (origin
      (method url-fetch)
@@ -113,7 +113,7 @@ complexity.")))
                          version ".tar.gz"))
      (sha256
       (base32
-       "04vfviw00zvvb1mdpl78zdgzd7j491f1lahhqrkkq9vk5kwcn5v6"))))
+       "02canrzmhr66gi16ldyylk378jlmyfl73vn72ayr12h2wyxgqm5g"))))
    (build-system gnu-build-system)
    (inputs `(("skalibs" ,skalibs)
              ("execline" ,execline)))
@@ -128,7 +128,7 @@ complexity.")))
                         (string-append "--with-sysdeps="
                                        (assoc-ref %build-inputs "skalibs")
                                        "/lib/skalibs/sysdeps"))
-      #:tests? #f))
+      #:tests? #f))                    ; no tests exist
    (home-page "https://skarnet.org/software/s6")
    (license isc)
    (synopsis "Small suite of programs for process supervision")
@@ -144,7 +144,7 @@ functionality with a very small amount of code.")))
 (define-public s6-dns
   (package
    (name "s6-dns")
-   (version "2.3.0.0")
+   (version "2.3.0.1")
    (source
     (origin
      (method url-fetch)
@@ -152,7 +152,7 @@ functionality with a very small amount of code.")))
                          version ".tar.gz"))
      (sha256
       (base32
-       "0h47ldxvh9cny91r0pjxq7zr5iqpqf1j50p3ip42f6bl90z5ha58"))))
+       "16ymalc4yxbwc0kapwmissxlw2bdk4sx3b33zp1gwx3n6hkcgh8c"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -163,7 +163,7 @@ functionality with a very small amount of code.")))
                           (string-append "--with-sysdeps="
                                          (assoc-ref %build-inputs "skalibs")
                                          "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-dns")
     (license isc)
     (synopsis "Suite of DNS client programs")
@@ -174,7 +174,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
 (define-public s6-networking
   (package
    (name "s6-networking")
-   (version "2.3.0.2")
+   (version "2.3.0.3")
    (source
     (origin
      (method url-fetch)
@@ -182,7 +182,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
                          version ".tar.gz"))
      (sha256
       (base32
-       "06j8fpldn187cmbjqp191hd65ka3ys19vj3jm3kcvkmvd9snh6fq"))))
+       "1kfjl7da6wkmyq1mvq9irkbzk2wbi0axjfbcw5cym5y11mqswsjs"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -205,7 +205,7 @@ as an alternative to the BIND, djbdns or other DNS clients.")))
                           (string-append "--with-sysdeps="
                                          (assoc-ref %build-inputs "skalibs")
                                          "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-networking")
     (license isc)
     (synopsis "Suite of network utilities for Unix systems")
@@ -218,7 +218,7 @@ clock synchronization.")))
 (define-public s6-rc
   (package
    (name "s6-rc")
-   (version "0.4.0.1")
+   (version "0.4.1.0")
    (source
     (origin
      (method url-fetch)
@@ -226,7 +226,7 @@ clock synchronization.")))
                          version ".tar.gz"))
      (sha256
       (base32
-       "0p4yczbib626kygr3pdvvay0xwyha92rjnhn79cbx18ywc2n4jsb"))))
+       "1xl37xi509pcm5chcvn8l7gb952sr5mkpxhpkbsxhsllj791bfa2"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)
               ("execline" ,execline)
@@ -245,7 +245,7 @@ clock synchronization.")))
                           (string-append "--with-sysdeps="
                                          (assoc-ref %build-inputs "skalibs")
                                          "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-rc")
     (license isc)
     (synopsis "Service manager for s6-based systems")
@@ -260,7 +260,7 @@ environment.")))
 (define-public s6-portable-utils
   (package
    (name "s6-portable-utils")
-   (version "2.2.1.1")
+   (version "2.2.1.2")
    (source
     (origin
      (method url-fetch)
@@ -269,7 +269,7 @@ environment.")))
            version ".tar.gz"))
      (sha256
       (base32
-       "0ca5iiq3n6isj64jb81xpwjzjx1q8jg145nnnn91ra2qqk93kqka"))))
+       "0if77z07rfygd1yk9d2abxkdbx3dg52vcjhb20isb8kvqxhkg8ih"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -280,7 +280,7 @@ environment.")))
                           (string-append "--with-sysdeps="
                                          (assoc-ref %build-inputs "skalibs")
                                          "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-portable-utils")
     (license isc)
     (synopsis "Tiny command-line Unix utilities")
@@ -293,7 +293,7 @@ systems and other constrained environments, but they work everywhere.")))
 (define-public s6-linux-init
   (package
    (name "s6-linux-init")
-   (version "0.3.1.1")
+   (version "0.4.0.0")
    (source
     (origin
      (method url-fetch)
@@ -302,7 +302,7 @@ systems and other constrained environments, but they work everywhere.")))
            version ".tar.gz"))
      (sha256
       (base32
-       "0yfxrjqlbb6kac4gcn78phxbwp5sj9jmc1vxpsrbql62mfjyiqly"))))
+       "0zpd6n30cf8847240f658gw40sh64lm1mbaxr19q6rryvs5rpb6l"))))
     (build-system gnu-build-system)
     (inputs
      `(("skalibs" ,skalibs)))
@@ -315,23 +315,23 @@ systems and other constrained environments, but they work everywhere.")))
         (string-append "--with-sysdeps="
                        (assoc-ref %build-inputs "skalibs")
                        "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-linux-init")
     (license isc)
     (synopsis "Minimalistic tools to create an s6-based init system on Linux")
     (description
-     " s6-linux-init is a set of minimalistic tools to create a s6-based init
+     "s6-linux-init is a set of minimalistic tools to create a s6-based init
 system, including an @command{/sbin/init} binary, on a Linux kernel.
 
 It is meant to automate creation of scripts revolving around the use of other
 skarnet.org tools, especially s6, in order to provide a complete booting
 environment with integrated supervision and logging without having to hand-craft
-all the details. ")))
+all the details.")))
 
 (define-public s6-linux-utils
   (package
    (name "s6-linux-utils")
-   (version "2.4.0.2")
+   (version "2.5.0.0")
    (source
     (origin
      (method url-fetch)
@@ -340,7 +340,7 @@ all the details. ")))
            version ".tar.gz"))
      (sha256
       (base32
-       "0245rmk7wfyyfsi4g7f0niprwlvqlwkbyjxflb8kkbvhwfdavqip"))))
+       "04q2z71dkzahd2ppga2zikclz2qk014c23gm7rigqxjc8rs1amvq"))))
     (build-system gnu-build-system)
     (inputs `(("skalibs" ,skalibs)))
     (arguments
@@ -351,7 +351,7 @@ all the details. ")))
                           (string-append "--with-sysdeps="
                                          (assoc-ref %build-inputs "skalibs")
                                          "/lib/skalibs/sysdeps"))
-       #:tests? #f))
+       #:tests? #f))                    ; no tests exist
     (home-page "https://skarnet.org/software/s6-linux-utils")
     (license isc)
     (synopsis "Set of minimalistic Linux-specific system utilities")
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index a648634646..69bc2b82cb 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -148,7 +148,7 @@ which allows users to view a desktop computing environment.")
 (define-public spice-gtk
   (package
     (name "spice-gtk")
-    (version "0.34")
+    (version "0.35")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -156,7 +156,7 @@ which allows users to view a desktop computing environment.")
                 "spice-gtk-" version ".tar.bz2"))
               (sha256
                (base32
-                "1vknp72pl6v6nf3dphhwp29hk6gv787db2pmyg4m312z2q0hwwp9"))))
+                "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("gstreamer" ,gstreamer)
@@ -302,7 +302,7 @@ resolution scaling on graphical console window resize.")
 (define-public virt-viewer
   (package
     (name "virt-viewer")
-    (version "6.0")
+    (version "7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -310,7 +310,7 @@ resolution scaling on graphical console window resize.")
                 "virt-viewer-" version ".tar.gz"))
               (sha256
                (base32
-                "1chqrf658niivzfh85cbwkbv9vyg8sv1mv3i31vawkfsfdvvsdwh"))))
+                "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
     (build-system gnu-build-system)
     (inputs
       `(("gtk+" ,gtk+)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index d8c1e6df33..994529baa4 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1061,13 +1061,13 @@ legends.")
 (define-public r-ggplot2
   (package
     (name "r-ggplot2")
-    (version "2.2.1")
+    (version "3.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggplot2" version))
        (sha256
-        (base32 "0543782ddv2hp6s0l702mnxfg8n7a6qlbm8bm55x22hnqgz8kg2z"))))
+        (base32 "0kb977hizsvk3b1k3zr717q78bpmbabhl8cj9a3w717nkq1zas67"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -1075,11 +1075,15 @@ legends.")
        ("r-plyr" ,r-plyr)
        ("r-lazyeval" ,r-lazyeval)
        ("r-mass" ,r-mass)
+       ("r-mgcv" ,r-mgcv)
        ("r-tibble" ,r-tibble)
        ("r-reshape2" ,r-reshape2)
+       ("r-rlang" ,r-rlang)
        ("r-scales" ,r-scales)
-       ("r-svglite" ,r-svglite))) ; Needed for 'ggsave'
-    (home-page "http://ggplot2.org")
+       ("r-svglite" ,r-svglite) ; Needed for 'ggsave'
+       ("r-viridislite" ,r-viridislite)
+       ("r-withr" ,r-withr)))
+    (home-page "https://ggplot2.tidyverse.org")
     (synopsis "An implementation of the grammar of graphics")
     (description
      "Ggplot2 is an implementation of the grammar of graphics in R.  It
@@ -4466,14 +4470,14 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
 (define-public r-cowplot
   (package
     (name "r-cowplot")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cowplot" version))
        (sha256
         (base32
-         "13yjw7yv7imyqiawqqp304hkp6x36iv6rf6gn03dwzwkj9zwx4lb"))))
+         "1jrx1h0blkk577y4cvnjk7xccn7qmjiv2bnpgqlsjvjhsxglf41y"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ggplot2" ,r-ggplot2)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 97e1427bec..f7d3e0ec7d 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -212,7 +212,7 @@ interfaces (GUIs) in the Tcl language.")
     (synopsis "Graphical user interface toolkit for Perl")
     (description
      "Tk is a Graphical User Interface ToolKit.")
-    (home-page (string-append "http://search.cpan.org/~srezic/Tk-" version))
+    (home-page "https://metacpan.org/release/Tk")
     ;; From the package README: "... you can redistribute it and/or modify it
     ;; under the same terms as Perl itself, with the exception of all the
     ;; files in the pTk sub-directory which have separate terms derived from
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index b290644aac..4a0a4faccb 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
@@ -1432,6 +1432,9 @@ that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
     (build-system texlive-build-system)
     (arguments
      '(#:tex-directory "latex/l3packages"
+       ;; build-targets must be specified manually since they are in
+       ;; sub-directories.
+       #:build-targets '("l3keys2e.ins" "xparse.ins" "xfrac.ins" "xfp.ins" "xtemplate.ins")
        #:phases
        (modify-phases %standard-phases
          ;; All package sources are in sub-directories, so we need to add them
@@ -1444,8 +1447,12 @@ that the LaTeX3 conventions can be used with regular LaTeX 2e packages.")
                                       cwd "/xparse:"
                                       cwd "/xfrac:"
                                       cwd "/xfp:"
-                                      cwd "/xtemplate")))
-             #t)))))
+                                      cwd "/xtemplate"
+                                      ;; The terminating ":" is required to include the
+                                      ;; l3kernel input as well.
+                                      ":")))
+             #t)))
+       ))
     (inputs
      `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
     (home-page "https://www.ctan.org/pkg/l3packages")
@@ -4094,7 +4101,7 @@ This package contains the complete TeX Live distribution.")
        ("perl-config-autoconf" ,perl-config-autoconf)
        ("perl-extutils-libbuilder" ,perl-extutils-libbuilder)
        ("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/Text-BibTeX")
+    (home-page "https://metacpan.org/release/Text-BibTeX")
     (synopsis "Interface to read and parse BibTeX files")
     (description "@code{Text::BibTeX} is a Perl library for reading, parsing,
 and processing BibTeX files.  @code{Text::BibTeX} gives you access to the data
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index bf464761e1..28d2ea5fd5 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -120,7 +120,7 @@ in intelligent transportation networks.")
 (define-public p11-kit
   (package
     (name "p11-kit")
-    (version "0.23.12")
+    (version "0.23.13")
     (source
      (origin
       (method url-fetch)
@@ -128,7 +128,7 @@ in intelligent transportation networks.")
                           "download/" version "/p11-kit-" version ".tar.gz"))
       (sha256
        (base32
-        "00ylbx2gxrm9bv6w4y3qf8z30vpdkqaa8z1y22hy27fv34py5fjq"))))
+        "1w92k6p4bhg8p24igfb6ifc6vixr2zdjh3x6gjhsphy778z40rda"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -410,7 +410,7 @@ required structures.")
   (package
     (inherit openssl)
     (name "openssl")
-    (version "1.1.0h")
+    (version "1.1.0i")
     (source (origin
              (method url-fetch)
              (uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -420,14 +420,12 @@ required structures.")
                         (string-append "ftp://ftp.openssl.org/source/old/"
                                        (string-trim-right version char-set:letter)
                                        "/" name "-" version ".tar.gz")))
-              (patches (search-patches "openssl-1.1.0-c-rehash-in.patch"
-                                       "openssl-1.1.0-CVE-2018-0495.patch"
-                                       "openssl-1.1.0-CVE-2018-0732.patch"))
+              (patches (search-patches "openssl-1.1.0-c-rehash-in.patch"))
               (sha256
                (base32
-                "05x509lccqjscgyi935z809pwfm708islypwhmjnb6cyvrn64daq"))))
+                "16fgaf113p6s5ixw227sycvihh3zx6f6rf0hvjjhxk68m12cigzb"))))
     (outputs '("out"
-               "doc"        ;1.3MiB of man3 pages
+               "doc"        ; 1.3MiB of man3 pages
                "static"))   ; 5.5MiB of .a files
     (arguments
      (substitute-keyword-arguments (package-arguments openssl)
@@ -658,7 +656,7 @@ http servers, too), an sslcat() function for writing your own clients, and
 finally access to the SSL api of the SSLeay/OpenSSL package so you can write
 servers or clients for more complicated applications.")
     (license license:perl-license)
-    (home-page "http://search.cpan.org/~mikem/Net-SSLeay-1.66/")))
+    (home-page "https://metacpan.org/release/Net-SSLeay")))
 
 (define-public perl-crypt-openssl-rsa
  (package
@@ -683,7 +681,7 @@ servers or clients for more complicated applications.")
       ("openssl" ,openssl)))
   (arguments perl-crypt-arguments)
   (home-page
-    "http://search.cpan.org/dist/Crypt-OpenSSL-RSA")
+    "https://metacpan.org/release/Crypt-OpenSSL-RSA")
   (synopsis
     "RSA encoding and decoding, using the openSSL libraries")
   (description "Crypt::OpenSSL::RSA does RSA encoding and decoding (using the
@@ -718,7 +716,7 @@ OpenSSL libraries).")
   (inputs `(("openssl" ,openssl)))
   (arguments perl-crypt-arguments)
   (home-page
-    "http://search.cpan.org/dist/Crypt-OpenSSL-Bignum")
+    "https://metacpan.org/release/Crypt-OpenSSL-Bignum")
   (synopsis
     "OpenSSL's multiprecision integer arithmetic in Perl")
   (description "Crypt::OpenSSL::Bignum provides multiprecision integer
@@ -740,7 +738,7 @@ arithmetic in Perl.")
         (base32
          "0rvi9l4ljcbhwwvspq019nfq2h2v746dk355h2nwnlmqikiihsxa"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Crypt-OpenSSL-Guess/")
+    (home-page "https://metacpan.org/release/Crypt-OpenSSL-Guess")
     (synopsis "Guess the OpenSSL include path")
     (description
      "The Crypt::OpenSSL::Guess Perl module provides helpers to guess the
@@ -769,7 +767,7 @@ correct OpenSSL include path.  It is intended for use in your
    `(("openssl" ,openssl)))
   (arguments perl-crypt-arguments)
   (home-page
-    "http://search.cpan.org/dist/Crypt-OpenSSL-Random")
+    "https://metacpan.org/release/Crypt-OpenSSL-Random")
   (synopsis
     "OpenSSL/LibreSSL pseudo-random number generator access")
   (description "Crypt::OpenSSL::Random is a OpenSSL/LibreSSL pseudo-random
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 6eaaffba40..1410e0da19 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -754,13 +754,13 @@ allowing to handle large objects with a small memory footprint.")
 (define-public python-gitpython
   (package
     (name "python-gitpython")
-    (version "2.1.10")
+    (version "2.1.11")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "GitPython" version))
               (sha256
                (base32
-                "00bk48s5szh296r7zyvdpv3sd7q9j2cb9sqdc9diwcjayrf082xn"))))
+                "1a357c28dnhgvq3saia7v29r71ynp48l2qp5xsmnc4vgzmdxqdw2"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f ;XXX: Tests can only be run within the GitPython repository.
@@ -1131,7 +1131,7 @@ following features:
 (define-public subversion
   (package
     (name "subversion")
-    (version "1.10.0")
+    (version "1.10.2")
     (source (origin
              (method url-fetch)
              (uri
@@ -1142,7 +1142,7 @@ following features:
                                 "subversion-" version ".tar.bz2")))
              (sha256
               (base32
-               "115mlvmf663w16mc3xyypnaizq401vbypc56hl2ylzc3pcx3zwic"))))
+               "127dysfc31q4dhbbxaznh9kqixy9jd44kgwji2gdwj6rb2lf6dav"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -1262,27 +1262,32 @@ RCS, PRCS, and Aegis packages.")
 (define-public cvs-fast-export
   (package
     (name "cvs-fast-export")
-    (version "1.43")
+    (version "1.44")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.catb.org/~esr/"
                                   name "/" name "-" version ".tar.gz"))
               (sha256
                (base32
-                "17xp5q4cxmd6z0ii1fdr4j1djb9mz1qv7hzr6fawdapjzahi65m3"))))
+                "1l7hlys4vw4zk4ikdjiig5vzgv5dv48mbm8bdqgvgkyyxb2j0dm0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
+         (add-before 'check 'fix-setpython-PATH
+           (lambda _
+             ;; The Makefile does try to add the current working directory to
+             ;; $PATH, but this fails for some reason in 1.44.  Hack around it.
+             (substitute* "tests/Makefile"
+               (("setpython" command)
+                (string-append "./" command)))
+             #t))
          (add-after 'unpack 'remove-optimizations
            (lambda _
              ;; Don't optimize for a specific processor architecture.
              (substitute* "Makefile"
                (("CFLAGS \\+= -march=native") ""))
-             ;; This code runs with Python2 or Python3
-             (substitute* "cvsreduce"
-               (("python3") "python"))
              #t)))
        #:parallel-build? #f ; parallel a2x commands fail spectacularly
        #:make-flags
@@ -2032,7 +2037,7 @@ directory full of HOWTOs.")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "6.20180626")
+    (version "6.20180807")
     (source
      (origin
        (method url-fetch)
@@ -2040,7 +2045,7 @@ directory full of HOWTOs.")
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
         (base32
-         "0vq3x9p4h3m266pcm2r3m9p51pz5z9zskh7z5nk0adh33j30xf7q"))))
+         "1wkqh1y58m0z1mf2j33qhndpxcjwv8mbv384kdk17vn0lp9zas1s"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index f81dbe5244..01e41b1914 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2018 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -257,14 +258,14 @@ television and DVD.  It is also known as AC-3.")
 (define-public libx264
   (package
     (name "libx264")
-    (version "20180219-2245")
+    (version "20180810-2245")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.videolan.org/pub/x264/snapshots/"
                                   "x264-snapshot-" version "-stable.tar.bz2"))
               (sha256
                (base32
-                "1x0cg8l30wp84mr7q0ddp06jclm0kjrszazrx87d4k7js3qxjy8m"))))
+                "0f25f39imas9pcqm7lnaa0shhjmf42hdx7jxzcnvxc7qsb7lh1bv"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -849,6 +850,17 @@ thumbnailer uses ffmpeg to decode frames from the video files, so supported
 videoformats depend on the configuration flags of ffmpeg.")
     (license license:gpl2+)))
 
+;; Fix build with newer x264.
+(define %vlc-libx264-compat.patch
+  (origin
+    (method url-fetch)
+    (uri (string-append "https://git.videolan.org/?p=vlc.git;a=patch;h="
+                        "a8953ba707cca1f2de372ca24513296bcfcdaaa8"))
+    (file-name "vlc-libx264-compat.patch")
+    (sha256
+     (base32
+      "04igckbdp3sbp8vh0ihmhcf3yjyyk9r3cd5dm9mn9j6vipi1dg3g"))))
+
 (define-public vlc
   (package
     (name "vlc")
@@ -859,6 +871,7 @@ videoformats depend on the configuration flags of ffmpeg.")
                    "https://download.videolan.org/pub/videolan/vlc/"
                    (car (string-split version #\-))
                    "/vlc-" version ".tar.xz"))
+             (patches (list %vlc-libx264-compat.patch))
              (sha256
               (base32
                "1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw"))))
@@ -2738,21 +2751,24 @@ programmers to access a standard API to open and decompress media files.")
                      name "-" version ".tar.xz"))
               (sha256
                (base32
-                "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5"))))
+                "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5"))
+              (patches (search-patches "aegisub-icu59-include-unistr.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        (list "--disable-update-checker"
              "--without-portaudio"
              "--without-openal"
-             "--without-oss")
+             "--without-oss"
+             "CXXFLAGS=-DU_USING_ICU_NAMESPACE=1")
        ;; tests require busted, a lua package we don't have yet
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'fix-ldflags
            (lambda _
-             (setenv "LDFLAGS" "-pthread"))))))
+             (setenv "LDFLAGS" "-pthread")
+             #t)))))
     (inputs
      `(("boost" ,boost)
        ("desktop-file-utils" ,desktop-file-utils)
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 8e7eded5e1..a39f2fa58f 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -94,15 +94,14 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "2.12.1")
+    (version "3.0.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://download.qemu.org/qemu-"
                                  version ".tar.xz"))
-             (patches (search-patches "qemu-CVE-2018-11806.patch"))
              (sha256
               (base32
-               "0krnp2wvggpchc7fdlmyasqy7j17baz8asr2g05x0v00w003hn1k"))))
+               "04sp3f1gp4bdb913jf7fw761njaqp2l32wgipp1sapmxx17zcyld"))))
     (build-system gnu-build-system)
     (arguments
      '(;; Running tests in parallel can occasionally lead to failures, like:
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 1cbc01041c..2e4057370f 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -460,7 +460,7 @@ servers that may need it).")
        ("perl-net-server" ,perl-net-server)
        ("perl-plack" ,perl-plack)
        ("perl-test-tcp" ,perl-test-tcp)))
-    (home-page "http://search.cpan.org/dist/Starman")
+    (home-page "https://metacpan.org/release/Starman")
     (synopsis "PSGI/Plack web server")
     (description "Starman is a PSGI perl web server that has unique features
 such as high performance, preforking, signal support, superdaemon awareness,
@@ -1287,7 +1287,7 @@ language known as SASS.")
     (propagated-inputs
      `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
     (arguments `(#:tests? #f))          ;TODO: Timezone test failures
-    (home-page "http://search.cpan.org/dist/Apache-LogFormat-Compiler")
+    (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
     (synopsis "Compile a log format string to perl-code")
     (description "This module provides methods to compile a log format string
 to perl-code, for faster generation of access_log lines.")
@@ -1316,7 +1316,7 @@ to perl-code, for faster generation of access_log lines.")
     (propagated-inputs
      `(("perl-digest-hmac" ,perl-digest-hmac)
        ("perl-gssapi" ,perl-gssapi)))
-    (home-page "http://search.cpan.org/dist/Authen-SASL")
+    (home-page "https://metacpan.org/release/Authen-SASL")
     (synopsis "SASL authentication framework")
     (description "Authen::SASL provides an SASL authentication framework.")
     (license l:perl-license)))
@@ -1342,7 +1342,7 @@ to perl-code, for faster generation of access_log lines.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-data-visitor" ,perl-data-visitor)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Action-RenderView")
+    (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
     (synopsis "Sensible default Catalyst action")
     (description "This Catalyst action implements a sensible default end
 action, which will forward to the first available view.")
@@ -1375,7 +1375,7 @@ action, which will forward to the first available view.")
        ("perl-params-validate" ,perl-params-validate)
        ("perl-uri-find" ,perl-uri-find)
        ("perl-xml-simple" ,perl-xml-simple)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Action-REST")
+    (home-page "https://metacpan.org/release/Catalyst-Action-REST")
     (synopsis "Automated REST Method Dispatching")
     (description "This Action handles doing automatic method dispatching for
 REST requests.  It takes a normal Catalyst action, and changes the dispatch to
@@ -1413,7 +1413,7 @@ regular method.")
        ("perl-dbix-class" ,perl-dbix-class)
        ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Authentication-Store-DBIx-Class")
+     "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
     (synopsis "Storage class for Catalyst authentication using DBIx::Class")
     (description "The Catalyst::Authentication::Store::DBIx::Class class
 provides access to authentication information stored in a database via
@@ -1440,7 +1440,7 @@ DBIx::Class.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-moose" ,perl-moose)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Component-InstancePerContext")
+     "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
     (synopsis "Create only one instance of Moose component per context")
     (description "Catalyst::Component::InstancePerContext returns a new
 instance of a component on each request.")
@@ -1478,7 +1478,7 @@ instance of a component on each request.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-path-class" ,perl-path-class)
        ("perl-template-toolkit" ,perl-template-toolkit)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Devel")
+    (home-page "https://metacpan.org/release/Catalyst-Devel")
     (synopsis "Catalyst Development Tools")
     (description "The Catalyst-Devel distribution includes a variety of
 modules useful for the development of Catalyst applications, but not required
@@ -1508,7 +1508,7 @@ modules.")
     (propagated-inputs
      `(("perl-moose" ,perl-moose)
        ("perl-text-simpletable" ,perl-text-simpletable)))
-    (home-page "http://search.cpan.org/dist/Catalyst-DispatchType-Regex")
+    (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
     (synopsis "Regex DispatchType for Catalyst")
     (description "Dispatch type managing path-matching behaviour using
 regexes.  Regex dispatch types have been deprecated and removed from Catalyst
@@ -1558,7 +1558,7 @@ when the dispatch type is first seen in your application.")
      ("perl-namespace-clean" ,perl-namespace-clean)
      ("perl-tie-ixhash" ,perl-tie-ixhash)
      ("perl-try-tiny" ,perl-try-tiny)))
-  (home-page "http://search.cpan.org/dist/Catalyst-Model-DBIC-Schema")
+  (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
   (synopsis "DBIx::Class::Schema Model Class")
   (description "This is a Catalyst Model for DBIx::Class::Schema-based
 Models.")
@@ -1582,7 +1582,7 @@ Models.")
        ("perl-datetime" ,perl-datetime)
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
     (synopsis "Request logging from within Catalyst")
     (description "This Catalyst plugin enables you to create \"access logs\"
 from within a Catalyst application instead of requiring a webserver to do it
@@ -1617,7 +1617,7 @@ for you.  It will work even with Catalyst debug logging turned off.")
        ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
        ("perl-test-exception" ,perl-test-exception)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Authentication")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
     (synopsis "Infrastructure plugin for the Catalyst authentication framework")
     (description "The authentication plugin provides generic user support for
 Catalyst apps.  It is the basis for both authentication (checking the user is
@@ -1649,7 +1649,7 @@ system authorises them to do).")
        ("perl-set-object" ,perl-set-object)
        ("perl-universal-isa" ,perl-universal-isa)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Authorization-Roles")
+     "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
     (synopsis "Role-based authorization for Catalyst")
     (description "Catalyst::Plugin::Authorization::Roles provides role-based
 authorization for Catalyst based on Catalyst::Plugin::Authentication.")
@@ -1673,7 +1673,7 @@ authorization for Catalyst based on Catalyst::Plugin::Authentication.")
        ("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-gd-securityimage" ,perl-gd-securityimage)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Captcha")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
     (synopsis "Captchas for Catalyst")
     (description "This plugin creates and validates Captcha images for
 Catalyst.")
@@ -1701,7 +1701,7 @@ Catalyst.")
        ("perl-config-any" ,perl-config-any)
        ("perl-data-visitor" ,perl-data-visitor)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-ConfigLoader")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
     (synopsis "Load config files of various types")
     (description "This module will attempt to load find and load configuration
 files of various types.  Currently it supports YAML, JSON, XML, INI and Perl
@@ -1734,7 +1734,7 @@ formats.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-object-signature" ,perl-object-signature)
        ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Session")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
     (synopsis "Catalyst generic session plugin")
     (description "This plugin links the two pieces required for session
 management in web applications together: the state, and the store.")
@@ -1763,7 +1763,7 @@ management in web applications together: the state, and the store.")
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Session-State-Cookie")
+     "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
     (synopsis "Maintain session IDs using cookies")
     (description "In order for Catalyst::Plugin::Session to work, the session
 ID needs to be stored on the client, and the session data needs to be stored
@@ -1794,7 +1794,7 @@ cookie mechanism.")
        ("perl-mro-compat" ,perl-mro-compat)
        ("perl-path-class" ,perl-path-class)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-Plugin-Session-Store-FastMmap")
+     "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
     (synopsis "FastMmap session storage backend")
     (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
 storage plugin for Catalyst that uses an mmap'ed file to act as a shared
@@ -1820,7 +1820,7 @@ memory interprocess cache.  It is based on Cache::FastMmap.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-devel-stacktrace" ,perl-devel-stacktrace)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-StackTrace")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
     (synopsis "Stack trace on the Catalyst debug screen")
     (description "This plugin enhances the standard Catalyst debug screen by
 including a stack trace of your application up to the point where the error
@@ -1849,7 +1849,7 @@ number, file name, and code context surrounding the line number.")
        ("perl-moose" ,perl-moose)
        ("perl-moosex-types" ,perl-moosex-types)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Plugin-Static-Simple")
+    (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
     (synopsis "Simple serving of static pages")
     (description "The Static::Simple plugin is designed to make serving static
 content in your application during development quick and easy, without
@@ -1912,7 +1912,7 @@ MIME type directly to the browser, without being processed through Catalyst.")
        ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)
        ("perl-uri-ws" ,perl-uri-ws)))
-    (home-page "http://search.cpan.org/dist/Catalyst-Runtime")
+    (home-page "https://metacpan.org/release/Catalyst-Runtime")
     (synopsis "The Catalyst Framework Runtime")
     (description "Catalyst is a modern framework for making web applications.
 It is designed to make it easy to manage the various tasks you need to do to
@@ -1944,7 +1944,7 @@ run an application on the web, either by doing them itself, or by letting you
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-uri" ,perl-uri)))
     (home-page
-     "http://search.cpan.org/dist/Catalyst-TraitFor-Request-ProxyBase")
+     "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
     (synopsis "Replace request base with value passed by HTTP proxy")
     (description "This module is a Moose::Role which allows you more
 flexibility in your application's deployment configurations when deployed
@@ -1972,7 +1972,7 @@ replaced with the contents of the X-Request-Base header.")
        ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
        ("perl-text-csv" ,perl-text-csv)
        ("perl-xml-simple" ,perl-xml-simple)))
-    (home-page "http://search.cpan.org/dist/Catalyst-View-Download")
+    (home-page "https://metacpan.org/release/Catalyst-View-Download")
     (synopsis "Download data in many formats")
     (description "The purpose of this module is to provide a method for
 downloading data into many supportable formats.  For example, downloading a
@@ -1999,7 +1999,7 @@ table based report in a variety of formats (CSV, HTML, etc.).")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-json-maybexs" ,perl-json-maybexs)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Catalyst-View-JSON")
+    (home-page "https://metacpan.org/release/Catalyst-View-JSON")
     (synopsis "Catalyst JSON view")
     (description "Catalyst::View::JSON is a Catalyst View handler that returns
 stash data in JSON format.")
@@ -2026,7 +2026,7 @@ stash data in JSON format.")
      ("perl-path-class" ,perl-path-class)
      ("perl-template-timer" ,perl-template-timer)
      ("perl-template-toolkit" ,perl-template-toolkit)))
-  (home-page "http://search.cpan.org/dist/Catalyst-View-TT")
+  (home-page "https://metacpan.org/release/Catalyst-View-TT")
   (synopsis "Template View Class")
   (description "This module is a Catalyst view class for the Template
 Toolkit.")
@@ -2056,7 +2056,7 @@ Toolkit.")
        ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("perl-list-moreutils" ,perl-list-moreutils)))
-    (home-page "http://search.cpan.org/dist/CatalystX-Component-Traits")
+    (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
     (synopsis "Trait Loading and Resolution for Catalyst Components")
     (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
 Catalyst component base class that reads the optional \"traits\" parameter
@@ -2082,7 +2082,7 @@ MooseX::Traits::Pluggable.")
      `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
        ("perl-moose" ,perl-moose)
        ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
-    (home-page "http://search.cpan.org/dist/CatalystX-RoleApplicator")
+    (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
     (synopsis "Apply roles to Catalyst classes")
     (description "CatalystX::RoleApplicator applies roles to Catalyst
 application classes.")
@@ -2110,7 +2110,7 @@ application classes.")
        ("perl-moose" ,perl-moose)
        ("perl-namespace-autoclean" ,perl-namespace-autoclean)
        ("starman" ,starman)))
-    (home-page "http://search.cpan.org/dist/CatalystX-Script-Server-Starman")
+    (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
     (synopsis "Catalyst development server with Starman")
     (description "This module provides a Catalyst extension to replace the
 development server with Starman.")
@@ -2135,7 +2135,7 @@ development server with Starman.")
        ("perl-test-warn" ,perl-test-warn)))
     (propagated-inputs
      `(("perl-html-parser" ,perl-html-parser)))
-    (home-page "http://search.cpan.org/dist/CGI")
+    (home-page "https://metacpan.org/release/CGI")
     (synopsis "Handle Common Gateway Interface requests and responses")
     (description "CGI.pm is a stable, complete and mature solution for
 processing and preparing HTTP requests and responses.  Major features include
@@ -2187,7 +2187,7 @@ form-based applications.")
      `(("perl-module-build" ,perl-module-build)))
     (inputs `(("perl-cgi" ,perl-cgi)))
     (home-page
-     "http://search.cpan.org/dist/CGI-Session")
+     "https://metacpan.org/release/CGI-Session")
     (synopsis
      "Persistent session data in CGI applications")
     (description
@@ -2213,7 +2213,7 @@ HTTP requests.")
        ("perl-module-build" ,perl-module-build)
        ("perl-test-exception" ,perl-test-exception)
        ("perl-test-nowarnings" ,perl-test-nowarnings)))
-    (home-page "http://search.cpan.org/dist/CGI-Simple")
+    (home-page "https://metacpan.org/release/CGI-Simple")
     (synopsis "CGI interface that is CGI.pm compliant")
     (description "CGI::Simple provides a relatively lightweight drop in
 replacement for CGI.pm.  It shares an identical OO interface to CGI.pm for
@@ -2235,7 +2235,7 @@ parameter parsing, file upload, cookie handling and header generation.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-test-deep" ,perl-test-deep)))
-    (home-page "http://search.cpan.org/dist/CGI-Struct")
+    (home-page "https://metacpan.org/release/CGI-Struct")
     (synopsis "Build structures from CGI data")
     (description "This is a module for building structured data from CGI
 inputs, in a manner reminiscent of how PHP does.")
@@ -2259,7 +2259,7 @@ inputs, in a manner reminiscent of how PHP does.")
     (propagated-inputs
      `(("perl-datetime" ,perl-datetime)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/DateTime-Format-HTTP")
+    (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
     (synopsis "Date conversion routines")
     (description "This module provides functions that deal with the date
 formats used by the HTTP protocol.")
@@ -2280,7 +2280,7 @@ formats used by the HTTP protocol.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/Digest-MD5-File")
+    (home-page "https://metacpan.org/release/Digest-MD5-File")
     (synopsis "MD5 sums for files and urls")
     (description "Digest::MD5::File is a Perl extension for getting MD5 sums
 for files and urls.")
@@ -2310,7 +2310,7 @@ Encode module to know this encoding under the name \"locale\".  It means
 bytes obtained from the environment can be converted to Unicode strings
 by calling Encode::encode(locale => $bytes) and converted back again
 with Encode::decode(locale => $string).")
-    (home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
+    (home-page "https://metacpan.org/release/Encode-Locale")))
 
 (define-public perl-feed-find
   (package
@@ -2336,7 +2336,7 @@ with Encode::decode(locale => $string).")
        ("perl-html-parser" ,perl-html-parser)
        ("perl-libwww" ,perl-libwww)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/Feed-Find")
+    (home-page "https://metacpan.org/release/Feed-Find")
     (synopsis "Syndication feed auto-discovery")
     (description "@code{Feed::Find} implements feed auto-discovery for finding
 syndication feeds, given a URI.  It will discover the following feed formats:
@@ -2363,7 +2363,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
     (description
      "The File::Listing module exports a single function called parse_dir(),
 which can be used to parse directory listings.")
-    (home-page "http://search.cpan.org/~gaas/File-Listing/")))
+    (home-page "https://metacpan.org/release/File-Listing")))
 
 (define-public perl-finance-quote
   (package
@@ -2392,7 +2392,7 @@ which can be used to parse directory listings.")
       ("perl-libwww" ,perl-libwww)
       ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
       ("perl-uri" ,perl-uri)))
-   (home-page "http://search.cpan.org/dist/Finance-Quote")
+   (home-page "https://metacpan.org/release/Finance-Quote")
    (synopsis "Stock and mutual fund quotes")
    (description
     "Finance::Quote gets stock quotes from various internet sources, including
@@ -2416,7 +2416,7 @@ Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
     (arguments
      `(#:make-maker-flags
        `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
-    (home-page "http://search.cpan.org/dist/GSSAPI")
+    (home-page "https://metacpan.org/release/GSSAPI")
     (synopsis "Perl extension providing access to the GSSAPIv2 library")
     (description "This is a Perl extension for using GSSAPI C bindings as
 described in RFC 2744.")
@@ -2437,7 +2437,7 @@ described in RFC 2744.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-html-tree" ,perl-html-tree)))
-    (home-page "http://search.cpan.org/dist/HTML-Element-Extended")
+    (home-page "https://metacpan.org/release/HTML-Element-Extended")
     (synopsis "Manipulate tables of HTML::Element")
     (description
      "HTML::Element::Extended is a Perl extension for manipulating a table
@@ -2463,7 +2463,7 @@ composed of HTML::Element style components.")
        ("perl-http-message" ,perl-http-message)
        ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/HTML-Form")
+    (home-page "https://metacpan.org/release/HTML-Form")
     (synopsis "Perl class representing an HTML form element")
     (description "Objects of the HTML::Form class represents a single HTML
 <form> ... </form> instance.")
@@ -2494,7 +2494,7 @@ composed of HTML::Element style components.")
     (inputs
      `(("perl-html-parser" ,perl-html-parser)))
     (home-page
-     "http://search.cpan.org/dist/HTML-Scrubber")
+     "https://metacpan.org/release/HTML-Scrubber")
     (synopsis
      "Perl extension for scrubbing/sanitizing html")
     (description
@@ -2518,7 +2518,7 @@ composed of HTML::Element style components.")
      `(("perl-html-parser" ,perl-html-parser)
        ("perl-html-tagset" ,perl-html-tagset)
        ("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/HTML-Lint")
+    (home-page "https://metacpan.org/release/HTML-Lint")
     (synopsis "Check for HTML errors in a string or file")
     (description "HTML::Lint is a pure-Perl HTML parser and checker for
 syntactic legitmacy.")
@@ -2540,7 +2540,7 @@ syntactic legitmacy.")
     (propagated-inputs
      `(("perl-html-element-extended" ,perl-html-element-extended)
        ("perl-html-parser" ,perl-html-parser)))
-    (home-page "http://search.cpan.org/dist/HTML-TableExtract")
+    (home-page "https://metacpan.org/release/HTML-TableExtract")
     (synopsis "Extract contents from HTML tables")
     (description
      "HTML::TableExtract is a Perl module for extracting the content contained
@@ -2567,7 +2567,7 @@ in tables within an HTML document, either as text or encoded element trees.")
      `(("perl-html-parser" ,perl-html-parser)
        ("perl-html-tagset" ,perl-html-tagset)
        ("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/HTML-Tree")
+    (home-page "https://metacpan.org/release/HTML-Tree")
     (synopsis "Work with HTML in a DOM-like tree structure")
     (description "This distribution contains a suite of modules for
 representing, creating, and extracting information from HTML syntax trees.")
@@ -2596,7 +2596,7 @@ representing, creating, and extracting information from HTML syntax trees.")
 it from plain text (alias data content) in HTML documents.  As different
 kinds of markup and text are recognized, the corresponding event handlers
 are invoked.")
-    (home-page "http://search.cpan.org/~gaas/HTML-Parser/")))
+    (home-page "https://metacpan.org/release/HTML-Parser")))
 
 (define-public perl-html-tagset
   (package
@@ -2616,7 +2616,7 @@ are invoked.")
     (description
      "The HTML::Tagset module contains several data tables useful in various
 kinds of HTML parsing operations.")
-    (home-page "http://search.cpan.org/dist/HTML-Tagset/")))
+    (home-page "https://metacpan.org/release/HTML-Tagset")))
 
 (define-public perl-html-template
   (package
@@ -2632,7 +2632,7 @@ kinds of HTML parsing operations.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-cgi" ,perl-cgi)))
-    (home-page "http://search.cpan.org/dist/HTML-Template")
+    (home-page "https://metacpan.org/release/HTML-Template")
     (synopsis "HTML-like templates")
     (description
      "This module attempts to make using HTML templates simple and natural.
@@ -2662,7 +2662,7 @@ you to separate design from the data.")
     (propagated-inputs
      `(("perl-file-temp" ,perl-file-temp)
        ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
-    (home-page "http://search.cpan.org/dist/HTTP-Body")
+    (home-page "https://metacpan.org/release/HTTP-Body")
     (synopsis "HTTP Body Parser")
     (description "HTTP::Body parses chunks of HTTP POST data and supports
 application/octet-stream, application/json, application/x-www-form-urlencoded,
@@ -2690,7 +2690,7 @@ and multipart/form-data.")
     (inputs
      `(("perl-time-local" ,perl-time-local)
        ("perl-http-date" ,perl-http-date)))
-    (home-page "http://search.cpan.org/dist/HTTP-CookieJar")
+    (home-page "https://metacpan.org/release/HTTP-CookieJar")
     (synopsis "Minimalist HTTP user agent cookie jar")
     (description "This module implements a minimalist HTTP user agent cookie
 jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
@@ -2717,7 +2717,7 @@ jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
      "The HTTP::Cookies class is for objects that represent a cookie jar,
 that is, a database of all the HTTP cookies that a given LWP::UserAgent
 object knows about.")
-    (home-page "http://search.cpan.org/~gaas/HTTP-Cookies/")))
+    (home-page "https://metacpan.org/release/GAAS/HTTP-Cookies-6.01")))
 
 (define-public perl-http-daemon
   (package
@@ -2741,7 +2741,7 @@ object knows about.")
      "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
 on a socket for incoming requests.  The HTTP::Daemon is a subclass of
 IO::Socket::INET, so you can perform socket operations directly on it too.")
-    (home-page "http://search.cpan.org/~gaas/HTTP-Daemon/")))
+    (home-page "https://metacpan.org/release/HTTP-Daemon")))
 
 (define-public perl-http-date
   (package
@@ -2761,7 +2761,7 @@ IO::Socket::INET, so you can perform socket operations directly on it too.")
     (description
      "The HTTP::Date module provides functions that deal with date formats
 used by the HTTP protocol (and then some more).")
-    (home-page "http://search.cpan.org/~gaas/HTTP-Date/")))
+    (home-page "https://metacpan.org/release/HTTP-Date")))
 
 (define-public perl-http-message
   (package
@@ -2788,7 +2788,7 @@ used by the HTTP protocol (and then some more).")
     (synopsis "Perl HTTP style message")
     (description
      "An HTTP::Message object contains some headers and a content body.")
-    (home-page "http://search.cpan.org/~ether/HTTP-Message/")))
+    (home-page "https://metacpan.org/release/ETHER/HTTP-Message-6.11")))
 
 (define-public perl-http-negotiate
   (package
@@ -2814,7 +2814,7 @@ draft-ietf-http-v11-spec-00.ps chapter 12.  Content negotiation allows for
 the selection of a preferred content representation based upon attributes
 of the negotiable variants and the value of the various Accept* header
 fields in the request.")
-    (home-page "http://search.cpan.org/~gaas/HTTP-Negotiate/")))
+    (home-page "https://metacpan.org/release/HTTP-Negotiate")))
 
 (define-public perl-http-parser
   (package
@@ -2832,7 +2832,7 @@ fields in the request.")
     (propagated-inputs
      `(("perl-http-message" ,perl-http-message)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/HTTP-Parser")
+    (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
@@ -2855,7 +2855,7 @@ supported.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/HTTP-Parser-XS")
+    (home-page "https://metacpan.org/release/HTTP-Parser-XS")
     (synopsis "Fast HTTP request parser")
     (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
 parser.")
@@ -2877,7 +2877,7 @@ parser.")
     (propagated-inputs
      `(("perl-class-accessor" ,perl-class-accessor)
        ("perl-http-message" ,perl-http-message)))
-    (home-page "http://search.cpan.org/dist/HTTP-Request-AsCGI")
+    (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
     (synopsis "Set up a CGI environment from an HTTP::Request")
     (description "This module provides a convenient way to set up a CGI
 environment from an HTTP::Request.")
@@ -2911,7 +2911,7 @@ environment from an HTTP::Request.")
                                (string-append (getcwd) ":"
                                               (getenv "PERL5LIB")))
                        #t)))))
-    (home-page "http://search.cpan.org/dist/HTTP-Server-Simple")
+    (home-page "https://metacpan.org/release/HTTP-Server-Simple")
     (synopsis "Lightweight HTTP server")
     (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
 no non-core module dependencies.  It can be used for building a standalone
@@ -2921,7 +2921,7 @@ http-based UI to your existing tools.")
 (define-public perl-http-tiny
   (package
     (name "perl-http-tiny")
-    (version "0.070")
+    (version "0.076")
     (source
      (origin
        (method url-fetch)
@@ -2929,7 +2929,7 @@ http-based UI to your existing tools.")
                            "HTTP-Tiny-" version ".tar.gz"))
        (sha256
         (base32
-         "0cvp5yqrni6qydpsa8fpkbm82zfwmy9js8jsvyj8gs3dx78qbwvl"))))
+         "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
     (build-system perl-build-system)
     (inputs
      `(("perl-http-cookiejar" ,perl-http-cookiejar)
@@ -2937,7 +2937,7 @@ http-based UI to your existing tools.")
        ("perl-io-socket-ssl" ,perl-io-socket-ssl)
        ("perl-mozilla-ca" ,perl-mozilla-ca)
        ("perl-net-ssleay" ,perl-net-ssleay)))
-    (home-page "http://search.cpan.org/dist/HTTP-Tiny")
+    (home-page "https://metacpan.org/release/HTTP-Tiny")
     (synopsis "HTTP/1.1 client")
     (description "This is a very simple HTTP/1.1 client, designed for doing
 simple requests without the overhead of a large framework like LWP::UserAgent.
@@ -2963,7 +2963,7 @@ It supports proxies and redirection.  It also correctly resumes after EINTR.")
      "IO::HTML provides an easy way to open a file containing HTML while
 automatically determining its encoding.  It uses the HTML5 encoding sniffing
 algorithm specified in section 8.2.2.1 of the draft standard.")
-    (home-page "http://search.cpan.org/~cjm/IO-HTML/")))
+    (home-page "https://metacpan.org/release/IO-HTML")))
 
 (define-public perl-io-socket-ip
   (package
@@ -2979,7 +2979,7 @@ algorithm specified in section 8.2.2.1 of the draft standard.")
          "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
     (build-system perl-build-system)
     (native-inputs `(("perl-module-build" ,perl-module-build)))
-    (home-page "http://search.cpan.org/dist/IO-Socket-IP")
+    (home-page "https://metacpan.org/release/IO-Socket-IP")
     (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
     (description "This module provides a protocol-independent way to use IPv4
 and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
@@ -3016,7 +3016,7 @@ select or poll.")
 (define-public perl-libwww
   (package
     (name "perl-libwww")
-    (version "6.15")
+    (version "6.35")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -3024,8 +3024,12 @@ select or poll.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "08l3mpgcvm4ipn1zggymqgk402apf35xyds43i8c07hvq92rsd3g"))))
+               "0lsrr8r61b67f9wrynkhdhldw5yic4d7cd78zi52q59jgf6mg8nx"))))
     (build-system perl-build-system)
+    (native-inputs
+     `(("perl-test-fatal" ,perl-test-fatal)
+       ("perl-test-needs" ,perl-test-needs)
+       ("perl-test-requiresinternet", perl-test-requiresinternet)))
     (propagated-inputs
      `(("perl-encode-locale" ,perl-encode-locale)
        ("perl-file-listing" ,perl-file-listing)
@@ -3036,6 +3040,7 @@ select or poll.")
        ("perl-http-message" ,perl-http-message)
        ("perl-http-negotiate" ,perl-http-negotiate)
        ("perl-net-http" ,perl-net-http)
+       ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)
        ("perl-www-robotrules" ,perl-www-robotrules)))
     (license l:perl-license)
@@ -3047,7 +3052,7 @@ World-Wide Web.  The main focus of the library is to provide classes
 and functions that allow you to write WWW clients.  The library also
 contains modules that are of more general use and even classes that
 help you implement simple HTTP servers.")
-    (home-page "http://search.cpan.org/dist/libwww-perl/")))
+    (home-page "https://metacpan.org/release/libwww-perl")))
 
 (define-public perl-lwp-online
   (package
@@ -3068,7 +3073,7 @@ help you implement simple HTTP servers.")
        ("perl-uri" ,perl-uri)))
     (native-inputs
      `(("perl-module-install" ,perl-module-install)))
-    (home-page "http://search.cpan.org/dist/LWP-Online/")
+    (home-page "https://metacpan.org/release/LWP-Online")
     (synopsis "Checks whether your process has access to the web")
     (description "This module attempts to answer, as accurately as it can, one
 of the nastiest technical questions there is: am I on the internet?
@@ -3098,7 +3103,7 @@ not have DNS.  We might not have a network card at all!")
 known as MIME) types and encodings.  The mapping from file extensions to
 media types is defined by the media.types file.  If the ~/.media.types file
 exists it is used instead.")
-    (home-page "http://search.cpan.org/~gaas/LWP-MediaTypes/")))
+    (home-page "https://metacpan.org/release/LWP-MediaTypes")))
 
 (define-public perl-lwp-protocol-https
   (package
@@ -3122,7 +3127,7 @@ exists it is used instead.")
        ;; Users should instead make sure SSL_ca_path is set properly.
        ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
        ("perl-net-http" ,perl-net-http)))
-    (home-page "http://search.cpan.org/dist/LWP-Protocol-https")
+    (home-page "https://metacpan.org/release/LWP-Protocol-https")
     (synopsis "HTTPS support for LWP::UserAgent")
     (description "The LWP::Protocol::https module provides support for using
 https schemed URLs with LWP.")
@@ -3143,7 +3148,7 @@ https schemed URLs with LWP.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-libwww" ,perl-libwww)))
-    (home-page "http://search.cpan.org/dist/LWP-UserAgent-Determined")
+    (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
     (synopsis "Virtual browser that retries errors")
     (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
 except that when you use it to get a web page but run into a
@@ -3189,7 +3194,7 @@ and retry a few times.")
        ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
        ("perl-uri" ,perl-uri)
        ("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/Net-Amazon-S3")
+    (home-page "https://metacpan.org/release/Net-Amazon-S3")
     (synopsis "Perl interface to Amazon S3")
     (description "This module provides a Perlish interface to Amazon S3.")
     (license l:perl-license)))
@@ -3217,7 +3222,7 @@ and retry a few times.")
 Net::HTTP class represents a connection to an HTTP server.  The HTTP protocol
 is described in RFC 2616.  The Net::HTTP class supports HTTP/1.0 and
 HTTP/1.1.")
-    (home-page "http://search.cpan.org/dist/Net-HTTP")))
+    (home-page "https://metacpan.org/release/Net-HTTP")))
 
 (define-public perl-net-server
   (package
@@ -3232,7 +3237,7 @@ HTTP/1.1.")
         (base32
          "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Net-Server")
+    (home-page "https://metacpan.org/release/Net-Server")
     (synopsis "Extensible Perl server engine")
     (description "Net::Server is an extensible, generic Perl server engine.
 It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
@@ -3261,7 +3266,7 @@ or to multiple server ports.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
-    (home-page "http://search.cpan.org/dist/Net-SMTP-SSL")
+    (home-page "https://metacpan.org/release/Net-SMTP-SSL")
     (synopsis "SSL support for Net::SMTP")
     (description "SSL support for Net::SMTP.")
     (license l:perl-license)))
@@ -3296,7 +3301,7 @@ or to multiple server ports.")
        ("perl-test-tcp" ,perl-test-tcp)
        ("perl-try-tiny" ,perl-try-tiny)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/Plack")
+    (home-page "https://metacpan.org/release/Plack")
     (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
     (description "Plack is a set of tools for using the PSGI stack.  It
 contains middleware components, a reference server, and utilities for Web
@@ -3323,7 +3328,7 @@ WSGI.")
        ("perl-http-message" ,perl-http-message)
        ("perl-plack" ,perl-plack)))     ;for Plack::Test
     (home-page
-     "http://search.cpan.org/dist/Plack-Middleware-FixMissingBodyInRedirect")
+     "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
     (synopsis "Plack::Middleware which sets body for redirect response")
     (description "This module sets the body in redirect response, if it's not
 already set.")
@@ -3347,7 +3352,7 @@ already set.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Middleware-MethodOverride")
+    (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
     (synopsis "Override REST methods to Plack apps via POST")
     (description "This middleware allows for POST requests that pretend to be
 something else: by adding either a header named X-HTTP-Method-Override to the
@@ -3372,7 +3377,7 @@ can say what method it actually meant.")
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
     (home-page
-     "http://search.cpan.org/dist/Plack-Middleware-RemoveRedundantBody")
+     "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
     (synopsis "Plack::Middleware which removes body for HTTP response")
     (description "This module removes the body in an HTTP response if it's not
 required.")
@@ -3396,7 +3401,7 @@ required.")
      `(("perl-module-install" ,perl-module-install)))
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Middleware-ReverseProxy")
+    (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
     (synopsis "Supports app to run as a reverse proxy backend")
     (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
 which are changed by reverse-proxy.  You can specify the reverse proxy address
@@ -3418,7 +3423,7 @@ and stop fake requests using 'enable_if' directive in your app.psgi.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-plack" ,perl-plack)))
-    (home-page "http://search.cpan.org/dist/Plack-Test-ExternalServer")
+    (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
     (synopsis "Run HTTP tests on external live servers")
     (description "This module allows your to run your Plack::Test tests
 against an external server instead of just against a local application through
@@ -3441,7 +3446,7 @@ either mocked HTTP or a locally spawned server.")
     (propagated-inputs
      `(("perl-test-sharedfork" ,perl-test-sharedfork)))
     (arguments `(#:tests? #f))          ;related to signaling in t/05_sigint.t
-    (home-page "http://search.cpan.org/dist/Test-TCP")
+    (home-page "https://metacpan.org/release/Test-TCP")
     (synopsis "Testing TCP programs")
     (description "Test::TCP is test utilities for TCP/IP programs.")
     (license l:perl-license)))
@@ -3467,7 +3472,7 @@ either mocked HTTP or a locally spawned server.")
        ("perl-libwww" ,perl-libwww)
        ("perl-test-longstring" ,perl-test-longstring)
        ("perl-www-mechanize" ,perl-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
     (synopsis "Testing-specific WWW::Mechanize subclass")
     (description "Test::WWW::Mechanize is a subclass of the Perl module
 WWW::Mechanize that incorporates features for web application testing.")
@@ -3502,7 +3507,7 @@ WWW::Mechanize that incorporates features for web application testing.")
        ("perl-namespace-clean" ,perl-namespace-clean)
        ("perl-test-www-mechanize" ,perl-test-www-mechanize)
        ("perl-www-mechanize" ,perl-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-Catalyst")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
     (synopsis "Test::WWW::Mechanize for Catalyst")
     (description "The Test::WWW::Mechanize::Catalyst module meshes the
 Test::WWW:Mechanize module and the Catalyst web application framework to allow
@@ -3527,7 +3532,7 @@ testing of Catalyst applications without needing to start up a web server.")
     (propagated-inputs
      `(("perl-plack" ,perl-plack)
        ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
-    (home-page "http://search.cpan.org/dist/Test-WWW-Mechanize-PSGI")
+    (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
     (synopsis "Test PSGI programs using WWW::Mechanize")
     (description "PSGI is a specification to decouple web server environments
 from web application framework code.  Test::WWW::Mechanize is a subclass of
@@ -3557,7 +3562,7 @@ applications.")
      "The URI module implements the URI class.  Objects of this class
 represent \"Uniform Resource Identifier references\" as specified in RFC 2396
 and updated by RFC 2732.")
-    (home-page "http://search.cpan.org/dist/URI/")))
+    (home-page "https://metacpan.org/release/URI")))
 
 (define-public perl-uri-fetch
   (package
@@ -3577,7 +3582,7 @@ and updated by RFC 2732.")
      `(("perl-class-errorhandler" ,perl-class-errorhandler)
        ("perl-libwww" ,perl-libwww)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-Fetch")
+    (home-page "https://metacpan.org/release/URI-Fetch")
     (synopsis "Smart URI fetching/caching")
     (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
 notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
@@ -3601,7 +3606,7 @@ and time-saving way.")
      `(("perl-module-build" ,perl-module-build)))
     (propagated-inputs
      `(("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-Find")
+    (home-page "https://metacpan.org/release/URI-Find")
     (synopsis "Find URIs in arbitrary text")
     (description "This module finds URIs and URLs (according to what URI.pm
 considers a URI) in plain text.  It only finds URIs which include a
@@ -3624,7 +3629,7 @@ URI::Find::Schemeless.  For a command-line interface, urifind is provided.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/URI-ws")
+    (home-page "https://metacpan.org/release/URI-ws")
     (synopsis "WebSocket support for URI package")
     (description "With this module, the URI package provides the same set of
 methods for WebSocket URIs as it does for HTTP URIs.")
@@ -3633,14 +3638,14 @@ methods for WebSocket URIs as it does for HTTP URIs.")
 (define-public perl-uri-template
   (package
     (name "perl-uri-template")
-    (version "0.22")
+    (version "0.23")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "08kjjb4c0v9gqfrfnj1wkivylxl05finn11ra64dj136fhmnyrbg"))))
+                "0nnijyv4n5qfg7l94j7fmvqy9cbq3gl9sz9anmgsiprmkmpk419j"))))
     (build-system perl-build-system)
     (inputs
      `(("perl-uri" ,perl-uri)))
@@ -3649,7 +3654,7 @@ methods for WebSocket URIs as it does for HTTP URIs.")
        ("perl-test-pod" ,perl-test-pod)
        ("perl-module-install" ,perl-module-install)
        ("perl-json" ,perl-json)))
-    (home-page "http://search.cpan.org/dist/URI-Template")
+    (home-page "https://metacpan.org/release/URI-Template")
     (synopsis "Object for handling URI templates")
     (description "This perl module provides a wrapper around URI templates as described in
 RFC 6570.")
@@ -3688,7 +3693,7 @@ RFC 6570.")
      "This is a Perl extension interface for the libcurl file downloading
 library.")
     (license l:perl-license)
-    (home-page "http://search.cpan.org/~szbalint/WWW-Curl-4.17/lib/WWW/Curl.pm")))
+    (home-page "https://metacpan.org/release/WWW-Curl")))
 
 (define-public perl-www-mechanize
   (package
@@ -3718,7 +3723,7 @@ library.")
        ("perl-libwww" ,perl-libwww)
        ("perl-test-warn" ,perl-test-warn)
        ("perl-uri" ,perl-uri)))
-    (home-page "http://search.cpan.org/dist/WWW-Mechanize")
+    (home-page "https://metacpan.org/release/WWW-Mechanize")
     (synopsis "Web browsing in a Perl object")
     (description "WWW::Mechanize is a Perl module for stateful programmatic
 web browsing, used for automating interaction with websites.")
@@ -3755,7 +3760,7 @@ web browsing, used for automating interaction with websites.")
        ("perl-uri-template" ,perl-uri-template)
        ("perl-xml-feed" ,perl-xml-feed)
        ("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/WWW-OpenSearch")
+    (home-page "https://metacpan.org/release/WWW-OpenSearch")
     (synopsis "Search A9 OpenSearch compatible engines")
     (description
      "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
@@ -3785,7 +3790,7 @@ http://opensearch.a9.com} compatible search engines.")
 <http://www.robotstxt.org/wc/norobots.html>.  Webmasters can use the
 /robots.txt file to forbid conforming robots from accessing parts of
 their web site.")
-    (home-page "http://search.cpan.org/~gaas/WWW-RobotRules/")))
+    (home-page "https://metacpan.org/release/WWW-RobotRules")))
 
 (define-public python-feedparser
   (package
@@ -6436,7 +6441,7 @@ based on this library, allowing Perl programmers to easily validate HTML.")
        ("tidyp" ,tidyp)))
     (native-inputs
      `(("perl-test-exception" ,perl-test-exception)))
-    (home-page "http://search.cpan.org/dist/HTML-Tidy/")
+    (home-page "https://metacpan.org/release/HTML-Tidy")
     (synopsis "(X)HTML validation in a Perl object")
     (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
 object.  It's meant as a replacement for @code{HTML::Lint}, which is written
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index e83f07bc54..cad1cba4ce 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -248,7 +248,7 @@ developers.")
     (propagated-inputs
      `(("perl-anyevent" ,perl-anyevent)
        ("perl-json-xs" ,perl-json-xs)))
-    (home-page "http://search.cpan.org/dist/AnyEvent-I3")
+    (home-page "https://metacpan.org/release/AnyEvent-I3")
     (synopsis
      "Communicate with the i3 window manager through perl")
     (description
@@ -505,14 +505,14 @@ tiled on several screens.")
 (define-public xmobar
   (package
     (name "xmobar")
-    (version "0.26")
+    (version "0.27")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://hackage/package/xmobar/"
                                   name "-" version ".tar.gz"))
               (sha256
                (base32
-                "19g40vqj3cs94i27f66194k7d5cazrv1lx54bz9kc0qy2npxjzgz"))))
+                "0agx490q6sbmv3vfq33ys8dsrgwizj3bmha4i1pkxz5wp5q8cx3l"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
@@ -522,6 +522,7 @@ tiled on several screens.")
        ("ghc-http" ,ghc-http)
        ("ghc-iwlib" ,ghc-iwlib)
        ("ghc-parsec" ,ghc-parsec)
+       ("ghc-parsec-numbers" ,ghc-parsec-numbers)
        ("ghc-regex-compat" ,ghc-regex-compat)
        ("ghc-stm" ,ghc-stm)
        ("ghc-x11-xft" ,ghc-x11-xft)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index a6d9555966..f100928393 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -883,7 +883,7 @@ Escape key when Left Control is pressed and released on its own.")
 (define-public libwacom
   (package
     (name "libwacom")
-    (version "0.30")
+    (version "0.31")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -891,7 +891,7 @@ Escape key when Left Control is pressed and released on its own.")
                     name "-" version "/" name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0n9294f2534qcgfry4n7vmr6vy49iqym0y74a88g1h0l0ml0hd2j"))))
+                "00xzkxhm0s9bvhbf27hscjbh17wa8lcgvxjqbmzm527f9cjqrm8q"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm
index 9c1f28592f..09c7597761 100644
--- a/gnu/packages/xfig.scm
+++ b/gnu/packages/xfig.scm
@@ -32,7 +32,7 @@
 (define-public xfig
   (package
     (name "xfig")
-    (version "3.2.7")
+    (version "3.2.7a")
     (source
      (origin
        (method url-fetch)
@@ -40,7 +40,7 @@
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0anlrr68knr401j7z76k6hx33w16l02dzb7szdkrc4rb2gj1rs2z"))))
+         "096zgp0bqnxhgxbrv2jjylrjz3pr4da0xxznlk2z7ffxr5pri2fa"))))
     (build-system gnu-build-system)
     (native-inputs
      ;; For tests.
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 1bf99f2fe5..9c8e3cef08 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -220,7 +220,7 @@ based on libxml for XML parsing, tree manipulation and XPath support.")
        ("perl-parse-yapp" ,perl-parse-yapp)
        ("perl-xml-parser" ,perl-xml-parser)
        ("perl-xml-writer" ,perl-xml-writer)))
-    (home-page "http://search.cpan.org/dist/Graph-ReadWrite")
+    (home-page "https://metacpan.org/release/Graph-ReadWrite")
     (synopsis "Modules for reading and writing directed graphs")
     (description "This is a collection of perl classes for reading and writing
 directed graphs in a variety of file formats.  The graphs are represented in
@@ -267,7 +267,7 @@ the @code{Graph} class and write it out in a specific file format.")
        ("perl-uri" ,perl-uri)
        ("perl-xml-libxml" ,perl-xml-libxml)
        ("perl-xml-xpath" ,perl-xml-xpath)))
-    (home-page "http://search.cpan.org/dist/XML-Atom")
+    (home-page "https://metacpan.org/release/XML-Atom")
     (synopsis "Atom feed and API implementation")
     (description
      "Atom is a syndication, API, and archiving format for weblogs and other data.
@@ -291,7 +291,7 @@ the @code{Graph} class and write it out in a specific file format.")
     (propagated-inputs
      `(("perl-test-differences" ,perl-test-differences)
        ("perl-xml-tokeparser" ,perl-xml-tokeparser)))
-    (home-page "http://search.cpan.org/dist/XML-Descent")
+    (home-page "https://metacpan.org/release/XML-Descent")
     (synopsis "Recursive descent XML parsing")
     (description
      "The conventional models for parsing XML are either @dfn{DOM}
@@ -331,7 +331,7 @@ may be provided when the XML::Parser object is created.  These options are
 then passed on to the Expat object on each parse call.  They can also be given
 as extra arguments to the parse methods, in which case they override options
 given at XML::Parser creation time.")
-    (home-page "http://search.cpan.org/dist/XML-Parser")))
+    (home-page "https://metacpan.org/release/XML-Parser")))
 
 (define-public perl-xml-tokeparser
   (package
@@ -346,7 +346,7 @@ given at XML::Parser creation time.")
                 "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5"))))
     (build-system perl-build-system)
     (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser)))
-    (home-page "http://search.cpan.org/dist/XML-TokeParser")
+    (home-page "https://metacpan.org/release/XML-TokeParser")
     (synopsis "Simplified interface to XML::Parser")
     (description
      "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface
@@ -372,11 +372,13 @@ corresponding to an @code{XML::Parser} event.")
     (propagated-inputs
      `(("perl-xml-parser" ,perl-xml-parser)))
     (license license:perl-license)
-    (synopsis "Perl SAX parser using XML::Parser")
+    (synopsis "Perl modules for working with XML")
     (description
-     "XML::Parser::PerlSAX is a PerlSAX parser using the XML::Parser
-module.")
-    (home-page "http://search.cpan.org/~kmacleod/libxml-perl/lib/XML/Parser/PerlSAX.pm")))
+     "libxml-perl is a collection of smaller Perl modules, scripts, and
+documents for working with XML in Perl.  libxml-perl software works in
+combination with @code{XML::Parser}, PerlSAX, @code{XML::DOM},
+@code{XML::Grove}, and others.")
+    (home-page "https://metacpan.org/release/libxml-perl")))
 
 (define-public perl-xml-libxml
   (package
@@ -396,7 +398,7 @@ module.")
        ("perl-xml-sax" ,perl-xml-sax)))
     (inputs
      `(("libxml2" ,libxml2)))
-    (home-page "http://search.cpan.org/dist/XML-LibXML")
+    (home-page "https://metacpan.org/release/XML-LibXML")
     (synopsis "Perl interface to libxml2")
     (description "This module implements a Perl interface to the libxml2
 library which provides interfaces for parsing and manipulating XML files.  This
@@ -419,7 +421,7 @@ XML parser and the high performance DOM implementation.")
     (propagated-inputs
      `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
        ("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/XML-LibXML-Simple")
+    (home-page "https://metacpan.org/release/XML-LibXML-Simple")
     (synopsis "XML::LibXML based XML::Simple clone")
     (description
      "This package provides the same API as @code{XML::Simple} but is based on
@@ -443,7 +445,7 @@ XML parser and the high performance DOM implementation.")
      `(("libxslt" ,libxslt)))
     (propagated-inputs
      `(("perl-xml-libxml" ,perl-xml-libxml)))
-    (home-page "http://search.cpan.org/dist/XML-LibXSLT")
+    (home-page "https://metacpan.org/release/XML-LibXSLT")
     (synopsis "Perl bindings to GNOME libxslt library")
     (description "This Perl module is an interface to the GNOME project's
 libxslt library.")
@@ -462,7 +464,7 @@ libxslt library.")
         (base32
          "1vz5pbi4lm5fhq2slrs2hlp6bnk29863abgjlcx43l4dky2rbsa7"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/XML-NamespaceSupport")
+    (home-page "https://metacpan.org/release/XML-NamespaceSupport")
     (synopsis "XML namespace support class")
     (description "This module offers a simple to process namespaced XML
 names (unames) from within any application that may need them.  It also helps
@@ -496,7 +498,7 @@ checks.")
        ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
        ("perl-html-parser" ,perl-html-parser)
        ("perl-xml-parser" ,perl-xml-parser)))
-    (home-page "http://search.cpan.org/dist/XML-RSS")
+    (home-page "https://metacpan.org/release/XML-RSS")
     (synopsis "Creates and updates RSS files")
     (description
      "This module provides a basic framework for creating and maintaining
@@ -533,7 +535,7 @@ that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
                              (string-append (getenv "PERL5LIB") ":"
                                             (assoc-ref outputs "out")
                                             "/lib/perl5/site_perl")))))))
-    (home-page "http://search.cpan.org/dist/XML-SAX")
+    (home-page "https://metacpan.org/release/XML-SAX")
     (synopsis "Perl API for XML")
     (description "XML::SAX consists of several framework classes for using and
 building Perl SAX2 XML parsers, filters, and drivers.")
@@ -552,7 +554,7 @@ building Perl SAX2 XML parsers, filters, and drivers.")
         (base32
          "1l1ai9g1z11ja7mvnfl5mj346r13jyckbg9qlw6c2izglidkbjv6"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/XML-SAX-Base")
+    (home-page "https://metacpan.org/release/XML-SAX-Base")
     (synopsis "Base class for SAX Drivers and Filters")
     (description "This module has a very simple task - to be a base class for
 PerlSAX drivers and filters.  It's default behaviour is to pass the input
@@ -583,7 +585,7 @@ callback.")
      "The XML::Simple module provides a simple API layer on top of an
 underlying XML parsing module (either XML::Parser or one of the SAX2
 parser modules).")
-    (home-page "http://search.cpan.org/dist/XML-Simple")))
+    (home-page "https://metacpan.org/release/XML-Simple")))
 
 (define-public perl-xml-regexp
   (package
@@ -606,7 +608,7 @@ parser modules).")
      "XML::RegExp contains regular expressions for the following XML tokens:
 BaseChar, Ideographic, Letter, Digit, Extender, CombiningChar, NameChar,
 EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
-    (home-page "http://search.cpan.org/~tjmather/XML-RegExp/lib/XML/RegExp.pm")))
+    (home-page "https://metacpan.org/release/XML-RegExp")))
 
 (define-public perl-xml-dom
   (package
@@ -635,7 +637,7 @@ XML::Parser module is built on top of XML::Parser::Expat, which is a lower
 level interface to James Clark's expat library.  XML::DOM::Parser is derived
 from XML::Parser.  It parses XML strings or files and builds a data structure
 that conforms to the API of the Document Object Model.")
-    (home-page "http://search.cpan.org/~tjmather/XML-DOM-1.44/lib/XML/DOM.pm")))
+    (home-page "https://metacpan.org/release/XML-DOM")))
 
 (define-public perl-xml-compile-tester
   (package
@@ -652,7 +654,7 @@ that conforms to the API of the Document Object Model.")
     (propagated-inputs
      `(("perl-log-report" ,perl-log-report)
        ("perl-test-deep" ,perl-test-deep)))
-    (home-page "http://search.cpan.org/dist/XML-Compile-Tester")
+    (home-page "https://metacpan.org/release/XML-Compile-Tester")
     (synopsis "XML::Compile related regression testing")
     (description
      "The @code{XML::Compile} module suite has extensive regression testing.
@@ -677,7 +679,7 @@ This module provide functions which simplify writing tests for
        ("perl-xml-compile-tester" ,perl-xml-compile-tester)
        ("perl-xml-libxml" ,perl-xml-libxml)
        ("perl-test-deep" ,perl-test-deep)))
-    (home-page "http://search.cpan.org/dist/XML-Compile")
+    (home-page "https://metacpan.org/release/XML-Compile")
     (synopsis "Compilation-based XML processing")
     (description
      "@code{XML::Compile} can be used to translate a Perl data-structure into
@@ -702,7 +704,7 @@ a schema.")
        ("perl-xml-compile" ,perl-xml-compile)
        ("perl-xml-compile-tester" ,perl-xml-compile-tester)
        ("perl-xml-libxml-simple" ,perl-xml-libxml-simple)))
-    (home-page "http://search.cpan.org/dist/XML-Compile-Cache")
+    (home-page "https://metacpan.org/release/XML-Compile-Cache")
     (synopsis "Cache compiled XML translators")
     (description
      "This package provides methods to cache compiled XML translators.")
@@ -727,7 +729,7 @@ a schema.")
        ("perl-xml-compile" ,perl-xml-compile)
        ("perl-xml-compile-cache" ,perl-xml-compile-cache)
        ("perl-xml-compile-tester" ,perl-xml-compile-tester)))
-    (home-page "http://search.cpan.org/dist/XML-Compile-SOAP")
+    (home-page "https://metacpan.org/release/XML-Compile-SOAP")
     (synopsis "Base-class for SOAP implementations")
     (description
      "This module provides a class to handle the SOAP protocol.  The first
@@ -753,7 +755,7 @@ used.")
        ("perl-xml-compile" ,perl-xml-compile)
        ("perl-xml-compile-cache" ,perl-xml-compile-cache)
        ("perl-xml-compile-soap" ,perl-xml-compile-soap)))
-    (home-page "http://search.cpan.org/dist/XML-Compile-WSDL11")
+    (home-page "https://metacpan.org/release/XML-Compile-WSDL11")
     (synopsis "Create SOAP messages defined by WSDL 1.1")
     (description
      "This module understands WSDL version 1.1.  A WSDL file defines a set of
@@ -793,7 +795,7 @@ server, collect the answer, and finally decoding the XML to Perl.")
        ("perl-xml-atom" ,perl-xml-atom)
        ("perl-xml-libxml" ,perl-xml-libxml)
        ("perl-xml-rss" ,perl-xml-rss)))
-    (home-page "http://search.cpan.org/dist/XML-Feed")
+    (home-page "https://metacpan.org/release/XML-Feed")
     (synopsis "XML Syndication Feed Support")
     (description "@code{XML::Feed} is a syndication feed parser for both RSS and
 Atom feeds.  It also implements feed auto-discovery for finding feeds, given a URI.
@@ -817,7 +819,7 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom")
      `(("perl-path-tiny" ,perl-path-tiny)))
     (propagated-inputs
      `(("perl-xml-parser" ,perl-xml-parser)))
-    (home-page "http://search.cpan.org/dist/XML-XPath")
+    (home-page "https://metacpan.org/release/XML-XPath")
     (synopsis "Parse and evaluate XPath statements")
     (description
      "This module aims to comply exactly to the @url{XPath specification,
@@ -1346,7 +1348,7 @@ maintaining each reference encountered.")
                (base32
                 "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/XML-XPathEngine/")
+    (home-page "https://metacpan.org/release/XML-XPathEngine")
     (synopsis "Re-usable XPath engine for DOM-like trees")
     (description
      "This module provides an XPath engine, that can be re-used by other
@@ -1371,7 +1373,7 @@ should be able to use this module very easily (you might need to add the
                (base32
                 "1vbbw8wxm79r3xbra8narw1dqvm34510q67wbmg2zmj6zd1k06r9"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Tree-XPathEngine/")
+    (home-page "https://metacpan.org/release/Tree-XPathEngine")
     (synopsis "Re-usable XPath engine")
     (description
      "This module provides an XPath engine, that can be re-used by other
@@ -1395,7 +1397,7 @@ by @code{Tree::XPathEngine}.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-xml-sax-base" ,perl-xml-sax-base)))
-    (home-page "http://search.cpan.org/dist/XML-Filter-BufferText/")
+    (home-page "https://metacpan.org/release/XML-Filter-BufferText")
     (synopsis "Filter to put all characters() in one event")
     (description "This is a very simple filter.  One common cause of
 grief (and programmer error) is that XML parsers aren't required to provide
@@ -1422,7 +1424,7 @@ characters into a single event.")
        ("perl-xml-filter-buffertext" ,perl-xml-filter-buffertext)
        ("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
        ("perl-xml-sax-base" ,perl-xml-sax-base)))
-    (home-page "http://search.cpan.org/dist/XML-SAX-Writer/")
+    (home-page "https://metacpan.org/release/XML-SAX-Writer")
     (synopsis "SAX2 XML Writer")
     (description
      "This is an XML writer that understands SAX2.  It is based on
@@ -1444,7 +1446,7 @@ characters into a single event.")
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-libxml" ,perl-libxml)))
-    (home-page "http://search.cpan.org/dist/XML-Handler-YAWriter/")
+    (home-page "https://metacpan.org/release/XML-Handler-YAWriter")
     (synopsis "Yet another Perl SAX XML Writer")
     (description "YAWriter implements Yet Another @code{XML::Handler::Writer}.
 It provides a flexible escaping technique and pretty printing.")
@@ -1479,7 +1481,7 @@ It provides a flexible escaping technique and pretty printing.")
        ("perl-xml-xpathengine" ,perl-xml-xpathengine)
        ("perl-test-pod" ,perl-test-pod)
        ("perl-tree-xpathengine" ,perl-tree-xpathengine)))
-    (home-page "http://search.cpan.org/dist/XML-Twig/")
+    (home-page "https://metacpan.org/release/XML-Twig")
     (synopsis "Perl module for processing huge XML documents in tree mode")
     (description "@code{XML::Twig} is an XML transformation module.  Its
 strong points: can be used to process huge documents while still being in tree
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 47a7f11499..cd57e02ded 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5725,7 +5725,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "333")
+    (version "335")
     (source (origin
               (method url-fetch)
               (uri (list
@@ -5735,7 +5735,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
                                    name "-" version ".tgz")))
               (sha256
                (base32
-                "0y7gl26mxw6kwqx9j9mi6lx1lp1v3nrlga19ddn07j2m9q0l479g"))))
+                "15nbgys4s2idhx6jzzc24g9bb1s6yps5fyg2bafvs0gkkcm1ggz0"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
@@ -5845,8 +5845,7 @@ interface to its methods (using @code{Mouse}).")
     (description
      "X11::Protocol is a client-side interface to the X11 Protocol, allowing
 perl programs to display windows and graphics on X11 servers.")
-    (home-page
-     (string-append "https://metacpan.org/release/SMCCAM/X11-Protocol-" version))
+    (home-page "https://metacpan.org/release/X11-Protocol")
     ;; From the package README: "you can redistribute and/or modify it under
     ;; the same terms as Perl itself. (As an exception, the file
     ;; Keysyms.pm,which is derived from a file in the standard X11
diff --git a/gnu/services/cgit.scm b/gnu/services/cgit.scm
index 3289d37333..a84a2dadb2 100644
--- a/gnu/services/cgit.scm
+++ b/gnu/services/cgit.scm
@@ -149,6 +149,7 @@
 
 (define (serialize-repo-boolean field-name val)
   (serialize-repo-integer field-name (if val 1 0)))
+(define-maybe repo-boolean)
 
 (define repo-list? list?)
 
@@ -239,27 +240,27 @@ is no suitable HEAD.")
    (repo-file-object "")
    "Override the default @code{email-filter}.")
   (enable-commit-graph?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-commit-graph?}.")
   (enable-log-filecount?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-log-filecount?}.")
   (enable-log-linecount?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to disable the global setting
 @code{enable-log-linecount?}.")
   (enable-remote-branches?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "Flag which, when set to @code{#t}, will make cgit display remote
 branches in the summary and refs views.")
   (enable-subject-links?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to override the global setting
 @code{enable-subject-links?}.")
   (enable-html-serving?
-   (repo-boolean #f)
+   (maybe-repo-boolean 'disabled)
    "A flag which can be used to override the global setting
 @code{enable-html-serving?}.")
   (hide?
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 8ae248ebe4..aff78a0566 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -221,13 +221,20 @@ host	all	all	::1/128 	trust"))
                        (setuid (passwd:uid user))
                        (execl pg_ctl pg_ctl "-D" #$data-directory "-o" options
                               mode)))))))
+            (pid-file (in-vicinity data-directory "postmaster.pid"))
             (action (lambda args
                       #~(lambda _
-                          (invoke #$pg_ctl-wrapper #$@args)))))
+                          (invoke #$pg_ctl-wrapper #$@args)
+                          (match '#$args
+                            (("start")
+                             (call-with-input-file #$pid-file read))
+                            (_ #t))))))
        (list (shepherd-service
               (provision '(postgres))
               (documentation "Run the PostgreSQL daemon.")
               (requirement '(user-processes loopback syslogd))
+              (modules `((ice-9 match)
+                         ,@%default-modules))
               (start (action "start"))
               (stop (action "stop"))))))))
 
diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm
index 4b7e724a78..1108006411 100644
--- a/gnu/services/messaging.scm
+++ b/gnu/services/messaging.scm
@@ -632,13 +632,20 @@ See also @url{https://prosody.im/doc/modules/mod_muc}."
                       (opaque-prosody-configuration-prosody config)
                       (prosody-configuration-prosody config)))
          (prosodyctl-bin (file-append prosody "/bin/prosodyctl"))
+         (pid-file (prosody-configuration-pidfile config))
          (prosodyctl-action (lambda args
                               #~(lambda _
-                                  (zero? (system* #$prosodyctl-bin #$@args))))))
+                                  (invoke #$prosodyctl-bin #$@args)
+                                  (match '#$args
+                                    (("start")
+                                     (call-with-input-file #$pid-file read))
+                                    (_ #t))))))
     (list (shepherd-service
            (documentation "Run the Prosody XMPP server")
            (provision '(prosody xmpp-daemon))
            (requirement '(networking syslogd user-processes))
+           (modules `((ice-9 match)
+                      ,@%default-modules))
            (start (prosodyctl-action "start"))
            (stop (prosodyctl-action "stop"))))))
 
diff --git a/gnu/services/security-token.scm b/gnu/services/security-token.scm
new file mode 100644
index 0000000000..7e7ea54a50
--- /dev/null
+++ b/gnu/services/security-token.scm
@@ -0,0 +1,84 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu services security-token)
+  #:use-module (gnu services)
+  #:use-module (gnu services shepherd)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages security-token)
+  #:use-module (gnu system shadow)
+  #:use-module (guix gexp)
+  #:use-module (guix modules)
+  #:use-module (guix records)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-26)
+  #:export (pcscd-configuration
+            pcscd-configuration?
+            pcscd-configuration-pcsc-lite
+            pcscd-configuration-usb-drivers
+            pcscd-service-type))
+
+;;;
+;;; PC/SC Smart Card Daemon
+;;;
+
+(define-record-type* <pcscd-configuration>
+  pcscd-configuration make-pcscd-configuration pcscd-configuration?
+  (pcsc-lite pcscd-configuration-pcsc-lite
+             (default pcsc-lite))
+  (usb-drivers pcscd-configuration-usb-drivers
+               (default (list ccid))))
+
+(define pcscd-shepherd-service
+  (match-lambda
+    (($ <pcscd-configuration> pcsc-lite)
+     (with-imported-modules (source-module-closure
+                             '((gnu build shepherd)))
+       (shepherd-service
+        (documentation "PC/SC Smart Card Daemon")
+        (provision '(pcscd))
+        (requirement '(syslogd))
+        (modules '((gnu build shepherd)))
+        (start #~(lambda _
+                   (invoke #$(file-append pcsc-lite "/sbin/pcscd"))
+                   (call-with-input-file "/var/run/pcscd/pcscd.pid" read)))
+        (stop #~(make-kill-destructor)))))))
+
+(define pcscd-activation
+  (match-lambda
+    (($ <pcscd-configuration> pcsc-lite usb-drivers)
+     #~(begin
+         (use-modules (guix build utils))
+         (mkdir-p "/var/lib")
+         (symlink #$(directory-union
+                     "pcsc"
+                     (map (cut file-append <> "/pcsc")
+                          usb-drivers))
+                  "/var/lib/pcsc")))))
+
+(define pcscd-service-type
+  (service-type
+   (name 'pcscd)
+   (description
+    "Run @command{pcscd}, the PC/SC smart card daemon.")
+   (extensions
+    (list (service-extension shepherd-root-service-type
+                             (compose list pcscd-shepherd-service))
+          (service-extension activation-service-type
+                             pcscd-activation)))
+   (default-value (pcscd-configuration))))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 9a58eff5ef..97976509b6 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
-;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -602,11 +602,10 @@ of index files."
           (nginx-action
            (lambda args
              #~(lambda _
-                 (zero?
-                  (system* #$nginx-binary "-c"
-                           #$(or file
-                                 (default-nginx-config config))
-                           #$@args))))))
+                 (invoke #$nginx-binary "-c"
+                         #$(or file
+                               (default-nginx-config config))
+                         #$@args)))))
 
      ;; TODO: Add 'reload' action.
      (list (shepherd-service
diff --git a/gnu/tests/security-token.scm b/gnu/tests/security-token.scm
new file mode 100644
index 0000000000..1169a4b9fd
--- /dev/null
+++ b/gnu/tests/security-token.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests security-token)
+  #:use-module (gnu tests)
+  #:use-module (gnu system vm)
+  #:use-module (gnu services)
+  #:use-module (gnu services security-token)
+  #:use-module (guix gexp)
+  #:export (%test-pcscd))
+
+(define %pcscd-os
+  (simple-operating-system
+   (service pcscd-service-type)))
+
+(define* (run-pcscd-test)
+  "Run tests of 'pcscd-service-type'."
+  (define os
+    (marionette-operating-system
+     %pcscd-os
+     #:imported-modules '((gnu services herd))
+     #:requirements '(pcscd)))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (srfi srfi-64)
+                       (gnu build marionette))
+          (define marionette
+            (make-marionette (list #$(virtual-machine os))))
+
+          (mkdir #$output)
+          (chdir #$output)
+
+          (test-begin "pcscd")
+
+          (test-assert "pcscd is alive"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (live-service-running
+                 (find (lambda (live)
+                         (memq 'pcscd (live-service-provision live)))
+                       (current-services))))
+             marionette))
+
+          (test-end)
+          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+  (gexp->derivation "pcscd" test))
+
+(define %test-pcscd
+  (system-test
+   (name "pcscd")
+   (description "Test a running pcscd daemon.")
+   (value (run-pcscd-test))))
diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index 08bed8767c..d0ff64ed05 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -117,7 +117,7 @@ or #f on failure.  MODULE should be e.g. \"Test::Script\""
   (json-fetch-alist (string-append "https://fastapi.metacpan.org/v1/release/" name)))
 
 (define (cpan-home name)
-  (string-append "http://search.cpan.org/dist/" name "/"))
+  (string-append "https://metacpan.org/release/" name))
 
 (define (cpan-source-url meta)
   "Return the download URL for a module's source tarball."
diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 3b138f8c98..3c00f680bf 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -30,15 +30,17 @@
   #:use-module ((guix utils) #:select (package-name->name+version
                                        canonical-newline-port))
   #:use-module (guix http-client)
-  #:use-module ((guix import utils) #:select (factorize-uri))
+  #:use-module ((guix import utils) #:select (factorize-uri recursive-import))
   #:use-module (guix import cabal)
   #:use-module (guix store)
   #:use-module (guix hash)
   #:use-module (guix base32)
+  #:use-module (guix memoization)
   #:use-module (guix upstream)
   #:use-module (guix packages)
   #:use-module ((guix utils) #:select (call-with-temporary-output-file))
   #:export (hackage->guix-package
+            hackage-recursive-import
             %hackage-updater
 
             guix-package->hackage-name
@@ -205,32 +207,34 @@ representation of a Cabal file as produced by 'read-cabal'."
   (define source-url
     (hackage-source-url name version))
 
+  (define hackage-dependencies
+    ((compose (cut filter-dependencies <>
+                   (cabal-package-name cabal))
+              (cut cabal-dependencies->names <>))
+     cabal))
+
+  (define hackage-native-dependencies
+    ((compose (cut filter-dependencies <>
+                   (cabal-package-name cabal))
+              ;; FIXME: Check include-test-dependencies?
+              (lambda (cabal)
+                (append (if include-test-dependencies?
+                            (cabal-test-dependencies->names cabal)
+                            '())
+                        (cabal-custom-setup-dependencies->names cabal))))
+     cabal))
+
   (define dependencies
-    (let ((names
-           (map hackage-name->package-name
-                ((compose (cut filter-dependencies <>
-                               (cabal-package-name cabal))
-                          (cut cabal-dependencies->names <>))
-                 cabal))))
-      (map (lambda (name)
-             (list name (list 'unquote (string->symbol name))))
-           names)))
+    (map (lambda (name)
+           (list name (list 'unquote (string->symbol name))))
+         (map hackage-name->package-name
+              hackage-dependencies)))
 
   (define native-dependencies
-    (let ((names
-           (map hackage-name->package-name
-                ((compose (cut filter-dependencies <>
-                               (cabal-package-name cabal))
-                          ;; FIXME: Check include-test-dependencies?
-                          (lambda (cabal)
-                            (append (if include-test-dependencies?
-                                        (cabal-test-dependencies->names cabal)
-                                        '())
-                                    (cabal-custom-setup-dependencies->names cabal))))
-                 cabal))))
-      (map (lambda (name)
-             (list name (list 'unquote (string->symbol name))))
-           names)))
+    (map (lambda (name)
+           (list name (list 'unquote (string->symbol name))))
+         (map hackage-name->package-name
+              hackage-native-dependencies)))
   
   (define (maybe-inputs input-type inputs)
     (match inputs
@@ -247,31 +251,35 @@ representation of a Cabal file as produced by 'read-cabal'."
 
   (let ((tarball (with-store store
                    (download-to-store store source-url))))
-    `(package
-       (name ,(hackage-name->package-name name))
-       (version ,version)
-       (source (origin
-                 (method url-fetch)
-                 (uri (string-append ,@(factorize-uri source-url version)))
-                 (sha256
-                  (base32
-                   ,(if tarball
-                        (bytevector->nix-base32-string (file-sha256 tarball))
-                        "failed to download tar archive")))))
-       (build-system haskell-build-system)
-       ,@(maybe-inputs 'inputs dependencies)
-       ,@(maybe-inputs 'native-inputs native-dependencies)
-       ,@(maybe-arguments)
-       (home-page ,(cabal-package-home-page cabal))
-       (synopsis ,(cabal-package-synopsis cabal))
-       (description ,(cabal-package-description cabal))
-       (license ,(string->license (cabal-package-license cabal))))))
+    (values
+     `(package
+        (name ,(hackage-name->package-name name))
+        (version ,version)
+        (source (origin
+                  (method url-fetch)
+                  (uri (string-append ,@(factorize-uri source-url version)))
+                  (sha256
+                   (base32
+                    ,(if tarball
+                         (bytevector->nix-base32-string (file-sha256 tarball))
+                         "failed to download tar archive")))))
+        (build-system haskell-build-system)
+        ,@(maybe-inputs 'inputs dependencies)
+        ,@(maybe-inputs 'native-inputs native-dependencies)
+        ,@(maybe-arguments)
+        (home-page ,(cabal-package-home-page cabal))
+        (synopsis ,(cabal-package-synopsis cabal))
+        (description ,(cabal-package-description cabal))
+        (license ,(string->license (cabal-package-license cabal))))
+     (append hackage-dependencies hackage-native-dependencies))))
 
-(define* (hackage->guix-package package-name #:key
-                                (include-test-dependencies? #t)
-                                (port #f)
-                                (cabal-environment '()))
-  "Fetch the Cabal file for PACKAGE-NAME from hackage.haskell.org, or, if the
+(define hackage->guix-package
+  (memoize
+   (lambda* (package-name #:key
+                          (include-test-dependencies? #t)
+                          (port #f)
+                          (cabal-environment '()))
+     "Fetch the Cabal file for PACKAGE-NAME from hackage.haskell.org, or, if the
 called with keyword parameter PORT, from PORT.  Return the `package'
 S-expression corresponding to that package, or #f on failure.
 CABAL-ENVIRONMENT is an alist defining the environment in which the Cabal
@@ -281,13 +289,19 @@ symbol 'true' or 'false'.  The value associated with other keys has to conform
 to the Cabal file format definition.  The default value associated with the
 keys \"os\", \"arch\" and \"impl\" is \"linux\", \"x86_64\" and \"ghc\"
 respectively."
-  (let ((cabal-meta (if port
-                        (read-cabal (canonical-newline-port port))
-                        (hackage-fetch package-name))))
-    (and=> cabal-meta (compose (cut hackage-module->sexp <>
-                                    #:include-test-dependencies? 
-                                    include-test-dependencies?)
-                               (cut eval-cabal <> cabal-environment)))))
+     (let ((cabal-meta (if port
+                           (read-cabal (canonical-newline-port port))
+                           (hackage-fetch package-name))))
+       (and=> cabal-meta (compose (cut hackage-module->sexp <>
+                                       #:include-test-dependencies?
+                                       include-test-dependencies?)
+                                  (cut eval-cabal <> cabal-environment)))))))
+
+(define* (hackage-recursive-import package-name . args)
+  (recursive-import package-name #f
+                    #:repo->guix-package (lambda (name repo)
+                                           (apply hackage->guix-package (cons name args)))
+                    #:guix-name hackage-name->package-name))
 
 (define (hackage-package? package)
   "Return #t if PACKAGE is a Haskell package from Hackage."
diff --git a/guix/scripts/import/hackage.scm b/guix/scripts/import/hackage.scm
index 969f637846..f4aac61078 100644
--- a/guix/scripts/import/hackage.scm
+++ b/guix/scripts/import/hackage.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-37)
+  #:use-module (srfi srfi-41)
   #:use-module (ice-9 match)
   #:use-module (ice-9 format)
   #:export (guix-import-hackage))
@@ -57,6 +59,8 @@ version.\n"))
   (display (G_ "
   -h, --help                   display this help and exit"))
   (display (G_ "
+  -r, --recursive              import packages recursively"))
+  (display (G_ "
   -s, --stdin                  read from standard input"))
   (display (G_ "
   -t, --no-test-dependencies   don't include test-only dependencies"))
@@ -89,6 +93,9 @@ version.\n"))
                    (alist-cons 'cabal-environment (read/eval arg)
                                (alist-delete 'cabal-environment
                                              result))))
+         (option '(#\r "recursive") #f #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'recursive #t result)))
          %standard-import-options))
 
 
@@ -107,15 +114,27 @@ version.\n"))
                 %default-options))
 
   (define (run-importer package-name opts error-fn)
-    (let ((sexp (hackage->guix-package
-                 package-name
-                 #:include-test-dependencies?
-                 (assoc-ref opts 'include-test-dependencies?)
-                 #:port (if (assoc-ref opts 'read-from-stdin?)
-                            (current-input-port)
-                            #f)
-                 #:cabal-environment
-                 (assoc-ref opts 'cabal-environment))))
+    (let* ((arguments (list
+                       package-name
+                       #:include-test-dependencies?
+                       (assoc-ref opts 'include-test-dependencies?)
+                       #:port (if (assoc-ref opts 'read-from-stdin?)
+                                  (current-input-port)
+                                  #f)
+                       #:cabal-environment
+                       (assoc-ref opts 'cabal-environment)))
+           (sexp (if (assoc-ref opts 'recursive)
+                     ;; Recursive import
+                     (map (match-lambda
+                            ((and ('package ('name name) . rest) pkg)
+                             `(define-public ,(string->symbol name)
+                                ,pkg))
+                            (_ #f))
+                          (reverse
+                           (stream->list
+                            (apply hackage-recursive-import arguments))))
+                     ;; Single import
+                     (apply hackage->guix-package arguments))))
       (unless sexp (error-fn))
       sexp))
 
diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po
index e1df54e9ef..e539992c18 100644
--- a/po/doc/guix-manual.fr.po
+++ b/po/doc/guix-manual.fr.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: guix-manual 0.15.0\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
 "POT-Creation-Date: 2018-06-22 14:12+0200\n"
-"PO-Revision-Date: 2018-06-23 14:21+0200\n"
+"PO-Revision-Date: 2018-08-15 18:07+0200\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -9004,38 +9004,46 @@ msgstr "Comme on pourrait s'en douter, cette primitive est difficile à utiliser
 #. type: Plain text
 #: doc/guix.texi:4597
 msgid "Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @code{build-expression->derivation}, documented below.  This procedure is now deprecated in favor of the much nicer @code{gexp->derivation}."
-msgstr ""
+msgstr "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:4598
 #, no-wrap
 msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
-msgstr ""
+msgstr "{Procédure Scheme} build-expression->derivation @var{store} @"
 
 #. type: deffn
 #: doc/guix.texi:4614
 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"
+"[#: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"
+"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:4622
 msgid "@var{exp} is evaluated in an environment where @code{%outputs} is bound to a list of output/path pairs, and where @code{%build-inputs} is bound to a list of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-vars} is a list of string pairs specifying the name and value of environment variables visible to the builder.  The builder terminates by passing the result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, the build is considered to have failed."
-msgstr ""
+msgstr "@var{exp} 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:4626
 msgid "@var{exp} is built using @var{guile-for-build} (a derivation).  When @var{guile-for-build} is omitted or is @code{#f}, the value of the @code{%guile-for-build} fluid is used instead."
-msgstr ""
+msgstr "@var{exp} 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:4631
 msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
-msgstr ""
+msgstr "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:4636
 msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
-msgstr ""
+msgstr "Voici un exemple de dérivation à sortie unique qui crée un répertoire avec un fichier :"
 
 #. type: lisp
 #: doc/guix.texi:4644
@@ -9049,50 +9057,57 @@ msgid ""
 "  (build-expression->derivation store \"goo\" builder))\n"
 "\n"
 msgstr ""
+"(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
+"                  (mkdir out)    ; create /gnu/store/@dots{}-goo\n"
+"                  (call-with-output-file (string-append out \"/test\")\n"
+"                    (lambda (p)\n"
+"                      (display '(hello guix) p))))))\n"
+"  (build-expression->derivation store \"goo\" builder))\n"
+"\n"
 
 #. type: lisp
 #: doc/guix.texi:4646
 #, no-wrap
 msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
-msgstr ""
+msgstr "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
 
 #. type: cindex
 #: doc/guix.texi:4652
 #, no-wrap
 msgid "monad"
-msgstr ""
+msgstr "monad"
 
 #. type: Plain text
 #: doc/guix.texi:4658
 msgid "The procedures that operate on the store described in the previous sections all take an open connection to the build daemon as their first argument.  Although the underlying model is functional, they either have side effects or depend on the current state of the store."
-msgstr ""
+msgstr "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:4664
 msgid "The former is inconvenient: the connection to the build daemon has to be carried around in all those functions, making it impossible to compose functions that do not take that parameter with functions that do.  The latter can be problematic: since store operations have side effects and/or depend on external state, they have to be properly sequenced."
-msgstr ""
+msgstr "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:4665
 #, no-wrap
 msgid "monadic values"
-msgstr ""
+msgstr "valeurs monadiques"
 
 #. type: cindex
 #: doc/guix.texi:4666
 #, no-wrap
 msgid "monadic functions"
-msgstr ""
+msgstr "fonctions monadiques"
 
 #. type: Plain text
 #: doc/guix.texi:4676
 msgid "This is where the @code{(guix monads)} module comes in.  This module provides a framework for working with @dfn{monads}, and a particularly useful monad for our uses, the @dfn{store monad}.  Monads are a construct that allows two things: associating ``context'' with values (in our case, the context is the store), and building sequences of computations (here computations include accesses to the store).  Values in a monad---values that carry this additional context---are called @dfn{monadic values}; procedures that return such values are called @dfn{monadic procedures}."
-msgstr ""
+msgstr "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 monad très utile pour notre usage, la @dfn{monad du dépôt}.  Les monads 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 monad — 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:4678
 msgid "Consider this ``normal'' procedure:"
-msgstr ""
+msgstr "Considérez cette procédure « normale » :"
 
 #. type: example
 #: doc/guix.texi:4687
@@ -9106,11 +9121,18 @@ msgid ""
 "    (build-expression->derivation store \"sh\"\n"
 "                                  `(symlink ,sh %output))))\n"
 msgstr ""
+"(define (sh-symlink store)\n"
+"  ;; Renvoie une dérivation qui crée un lien symbolique vers l'exécutable « 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:4691
 msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
-msgstr ""
+msgstr "En utilisant @code{(guix monads)} et @code{(guix gexp)}, on peut la réécrire en une fonction monadique :"
 
 #. type: example
 #: doc/guix.texi:4699
@@ -9123,16 +9145,22 @@ msgid ""
 "                      #~(symlink (string-append #$drv \"/bin/bash\")\n"
 "                                 #$output))))\n"
 msgstr ""
+"(define (sh-symlink)\n"
+"  ;; Pareil, mais renvoie une valeur monadique.\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:4706
 msgid "There are several things to note in the second version: the @code{store} parameter is now implicit and is ``threaded'' in the calls to the @code{package->derivation} and @code{gexp->derivation} monadic procedures, and the monadic value returned by @code{package->derivation} is @dfn{bound} using @code{mlet} instead of plain @code{let}."
-msgstr ""
+msgstr "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:4710
 msgid "As it turns out, the call to @code{package->derivation} can even be omitted since it will take place implicitly, as we will see later (@pxref{G-Expressions}):"
-msgstr ""
+msgstr "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:4716
@@ -9143,11 +9171,15 @@ msgid ""
 "                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
 "                               #$output)))\n"
 msgstr ""
+"(define (sh-symlink)\n"
+"  (gexp->derivation \"sh\"\n"
+"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
+"                               #$output)))\n"
 
 #. type: Plain text
 #: doc/guix.texi:4725
 msgid "Calling the monadic @code{sh-symlink} has no effect.  As someone once said, ``you exit a monad like you exit a building on fire: by running''.  So, to exit the monad and get the desired effect, one must use @code{run-with-store}:"
-msgstr ""
+msgstr "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 monad comme d'un immeuble en flamme, en courant ».  Le jeu de mot est perdu à la traduction : courrir et lancer utilisent le même verbe @i{run} en anglais.}. Donc, pour sortir de la monad et obtenir l'effet escompté, on doit utiliser @code{run-with-store}."
 
 #. type: example
 #: doc/guix.texi:4729
@@ -9156,11 +9188,13 @@ msgid ""
 "(run-with-store (open-connection) (sh-symlink))\n"
 "@result{} /gnu/store/...-sh-symlink\n"
 msgstr ""
+"(run-with-store (open-connection) (sh-symlink))\n"
+"@result{} /gnu/store/...-sh-symlink\n"
 
 #. type: Plain text
 #: doc/guix.texi:4735
 msgid "Note that the @code{(guix monad-repl)} module extends the Guile REPL with new ``meta-commands'' to make it easier to deal with monadic procedures: @code{run-in-store}, and @code{enter-store-monad}.  The former is used to ``run'' a single monadic value through the store:"
-msgstr ""
+msgstr "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:4739
@@ -9169,11 +9203,13 @@ 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:4743
 msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
-msgstr ""
+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:4752
@@ -9187,49 +9223,56 @@ msgid ""
 "store-monad@@(guile-user) [1]> ,q\n"
 "scheme@@(guile-user)>\n"
 msgstr ""
+"scheme@@(guile-user)> ,enter-store-monad\n"
+"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
+"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
+"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
+"$3 = \"/gnu/store/@dots{}-foo\"\n"
+"store-monad@@(guile-user) [1]> ,q\n"
+"scheme@@(guile-user)>\n"
 
 #. type: Plain text
 #: doc/guix.texi:4757
 msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
-msgstr ""
+msgstr "Remarquez qu'on ne peut pas renvoyer de valeur non monadique dans la console @code{store-monad}."
 
 #. type: Plain text
 #: doc/guix.texi:4760
 msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
-msgstr ""
+msgstr "Les formes syntaxiques principales pour utiliser des monads en général sont disponibles dans le module @code{(guix monads)} et sont décrites ci-dessous."
 
 #. type: deffn
 #: doc/guix.texi:4761
 #, no-wrap
 msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
-msgstr ""
+msgstr "{Syntaxe Scheme} with-monad @var{monad} @var{body} ..."
 
 #. type: deffn
 #: doc/guix.texi:4764
 msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
-msgstr ""
+msgstr "Évalue n'importe quelle forme @code{>>=} ou @code{return} dans @var{body} comme une @var{monad}."
 
 #. type: deffn
 #: doc/guix.texi:4766
 #, no-wrap
 msgid "{Scheme Syntax} return @var{val}"
-msgstr ""
+msgstr "{Syntaxe Scheme} return @var{val}"
 
 #. type: deffn
 #: doc/guix.texi:4768
 msgid "Return a monadic value that encapsulates @var{val}."
-msgstr ""
+msgstr "Renvoie une valeur monadique qui encapsule @var{val}."
 
 #. type: deffn
 #: doc/guix.texi:4770
 #, no-wrap
 msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
-msgstr ""
+msgstr "{Syntaxe Scheme} >>= @var{mval} @var{mproc} ..."
 
 #. type: deffn
 #: doc/guix.texi:4777
 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 ""
+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:4785
@@ -9243,6 +9286,13 @@ msgid ""
 "  'some-state)\n"
 "\n"
 msgstr ""
+"(run-with-state\n"
+"    (with-monad %state-monad\n"
+"      (>>= (return 1)\n"
+"           (lambda (x) (return (+ 1 x)))\n"
+"           (lambda (x) (return (* 2 x)))))\n"
+"  'some-state)\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:4788
@@ -9251,98 +9301,102 @@ msgid ""
 "@result{} 4\n"
 "@result{} some-state\n"
 msgstr ""
+"@result{} 4\n"
+"@result{} some-state\n"
 
 #. type: deffn
 #: doc/guix.texi:4791
 #, no-wrap
 msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
-msgstr ""
+msgstr "{Syntaxe Scheme} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
 #: doc/guix.texi:4793
 msgid "@var{body} ..."
-msgstr ""
+msgstr "@var{body} ..."
 
 #. type: deffnx
 #: doc/guix.texi:4793
 #, no-wrap
 msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
-msgstr ""
+msgstr "{Syntaxe Scheme} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
 
 #. type: deffn
 #: doc/guix.texi:4805
 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:4808
 msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
-msgstr ""
+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:4810
 #, no-wrap
 msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
-msgstr ""
+msgstr "{Système Scheme} mbegin @var{monad} @var{mexp} ..."
 
 #. type: deffn
 #: doc/guix.texi:4814
 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 ""
+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:4818
 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 ""
+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:4820
 #, no-wrap
 msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
-msgstr ""
+msgstr "{Système Scheme} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
 #: doc/guix.texi:4825
 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 ""
+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 monad actuelle.  Cahque expression dans la séquence doit être une expression monadique."
 
 #. type: deffn
 #: doc/guix.texi:4827
 #, no-wrap
 msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
-msgstr ""
+msgstr "{Système Scheme} munless @var{condition} @var{mexp0} @var{mexp*} ..."
 
 #. type: deffn
 #: doc/guix.texi:4832
 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 ""
+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 monad actuelle.  Cahque expression dans la séquence doit être une expression monadique."
 
 #. type: cindex
 #: doc/guix.texi:4834
 #, no-wrap
 msgid "state monad"
-msgstr ""
+msgstr "monad d'état"
 
 #. type: Plain text
 #: doc/guix.texi:4838
 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 ""
+msgstr "Le module @code{(guix monads)} fournit la @dfn{monad 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:4839
 #, no-wrap
 msgid "{Scheme Variable} %state-monad"
-msgstr ""
+msgstr "{Variable Scheme} %state-monad"
 
 #. type: defvr
 #: doc/guix.texi:4842
 msgid "The state monad.  Procedures in the state monad can access and change the state that is threaded."
-msgstr ""
+msgstr "La monad d'état.  les procédure dans la monad d'état peuvent accéder et modifier l'état qui est enfilé."
 
 #. type: defvr
 #: doc/guix.texi:4846
 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 ""
+msgstr "Considérez l'exemple ci-dessous.  La procédure @code{square} renvoie une valeur dans la monad d'état.  Elle renvoie le carré de son argument, mais incrémente aussi la valeur actuelle de l'état :"
 
 #. type: example
 #: doc/guix.texi:4853
@@ -9355,6 +9409,12 @@ msgid ""
 "      (return (* x x)))))\n"
 "\n"
 msgstr ""
+"(define (square x)\n"
+"  (mlet %state-monad ((count (current-state)))\n"
+"    (mbegin %state-monad\n"
+"      (set-current-state (+ 1 count))\n"
+"      (return (* x x)))))\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:4857
@@ -9364,135 +9424,140 @@ msgid ""
 "@result{} (0 1 4)\n"
 "@result{} 3\n"
 msgstr ""
+"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
+"@result{} (0 1 4)\n"
+"@result{} 3\n"
 
 #. type: defvr
 #: doc/guix.texi:4861
 msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
-msgstr ""
+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:4863
 #, no-wrap
 msgid "{Monadic Procedure} current-state"
-msgstr ""
+msgstr "{Procédure Monadic} current-state"
 
 #. type: deffn
 #: doc/guix.texi:4865
 msgid "Return the current state as a monadic value."
-msgstr ""
+msgstr "Renvoie l'état actuel dans une valeur monadique."
 
 #. type: deffn
 #: doc/guix.texi:4867
 #, no-wrap
 msgid "{Monadic Procedure} set-current-state @var{value}"
-msgstr ""
+msgstr "{Procédure Monadic} set-current-state @var{value}"
 
 #. type: deffn
 #: doc/guix.texi:4870
 msgid "Set the current state to @var{value} and return the previous state as a monadic value."
-msgstr ""
+msgstr "Initialise l'état actuel à @var{value} et renvoie l'état précédent dans une valeur monadique."
 
 #. type: deffn
 #: doc/guix.texi:4872
 #, no-wrap
 msgid "{Monadic Procedure} state-push @var{value}"
-msgstr ""
+msgstr "{Procédure Monadic} state-push @var{value}"
 
 #. type: deffn
 #: doc/guix.texi:4875
 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 ""
+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:4877
 #, no-wrap
 msgid "{Monadic Procedure} state-pop"
-msgstr ""
+msgstr "{Procédure Monadic} state-pop"
 
 #. type: deffn
 #: doc/guix.texi:4880
 msgid "Pop a value from the current state and return it as a monadic value.  The state is assumed to be a list."
-msgstr ""
+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:4882
 #, no-wrap
 msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
-msgstr ""
+msgstr "{Procédure Scheme} run-with-state @var{mval} [@var{state}]"
 
 #. type: deffn
 #: doc/guix.texi:4885
 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 ""
+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:4889
 msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
-msgstr ""
+msgstr "L'interface principale avec la monad du dépôt, fournit par le module @code{(guix store)}, est la suivante."
 
 #. type: defvr
 #: doc/guix.texi:4890
 #, no-wrap
 msgid "{Scheme Variable} %store-monad"
-msgstr ""
+msgstr "{Variable Scheme} %store-monad"
 
 #. type: defvr
 #: doc/guix.texi:4892
 msgid "The store monad---an alias for @var{%state-monad}."
-msgstr ""
+msgstr "La monad du dépôt — un alias pour @var{%state-monad}."
 
 #. type: defvr
 #: doc/guix.texi:4896
 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 ""
+msgstr "Les valeurs dans la monad du dépôt encapsulent des accès au dépôt.  Lorsque son effet est requis, une valeur de la monad 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:4898
 #, no-wrap
 msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
-msgstr ""
+msgstr "{Procédure Scheme} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
 
 #. type: deffn
 #: doc/guix.texi:4901
 msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
-msgstr ""
+msgstr "Lance @var{mval}, une valeur monadique dans la monad du dépôt, dans @var{store}, une connexion ouvert au dépôt."
 
 #. type: deffn
 #: doc/guix.texi:4903
 #, no-wrap
 msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
-msgstr ""
+msgstr "{Procédure Monadique} text-file @var{name} @var{text} [@var{references}]"
 
 #. type: deffn
 #: doc/guix.texi:4907
 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 ""
+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:4909
 #, no-wrap
 msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
-msgstr ""
+msgstr "{Procédure Monadique} interned-file @var{file} [@var{name}] @"
 
 #. type: deffn
 #: doc/guix.texi:4914
 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:4918 doc/guix.texi:5330
 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 ""
+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:4923 doc/guix.texi:5335
 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 ""
+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:4925
 msgid "The example below adds a file to the store, under two different names:"
-msgstr ""
+msgstr "L'exemple ci-dessous ajoute un fichier au dépôt, sous deux noms différents :"
 
 #. type: example
 #: doc/guix.texi:4931
@@ -9504,114 +9569,124 @@ msgid ""
 "    (return (list a b))))\n"
 "\n"
 msgstr ""
+"(run-with-store (open-connection)\n"
+"  (mlet %store-monad ((a (interned-file \"README\"))\n"
+"                      (b (interned-file \"README\" \"LEGU-MIN\")))\n"
+"    (return (list a b))))\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:4933
 #, no-wrap
 msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
-msgstr ""
+msgstr "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
 
 #. type: Plain text
 #: doc/guix.texi:4939
 msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
-msgstr ""
+msgstr "Le module @code{(guix packages)} exporte les procédures monadiques liées aux paquets suivantes :"
 
 #. type: deffn
 #: doc/guix.texi:4940
 #, no-wrap
 msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
-msgstr ""
+msgstr "{Procédure Monadique} package-file @var{package} [@var{file}] @"
 
 #. type: deffn
 #: doc/guix.texi:4948
 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"
+"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:4950
 #, no-wrap
 msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
-msgstr ""
+msgstr "{Procédure Monadique} package->derivation @var{package} [@var{system}]"
 
 #. type: deffnx
 #: doc/guix.texi:4951
 #, no-wrap
 msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
-msgstr ""
+msgstr "{Procédure Monadique} package->cross-derivation @var{package} @"
 
 #. type: deffn
 #: doc/guix.texi:4955
 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:4961
 #, no-wrap
 msgid "G-expression"
-msgstr ""
+msgstr "G-expression"
 
 #. type: cindex
 #: doc/guix.texi:4962
 #, no-wrap
 msgid "build code quoting"
-msgstr ""
+msgstr "quoting du code de construction"
 
 #. type: Plain text
 #: doc/guix.texi:4968
 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 ""
+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:4969
 #, no-wrap
 msgid "strata of code"
-msgstr ""
+msgstr "strate de code"
 
 #. type: Plain text
 #: doc/guix.texi:4981
 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 ""
+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:4988
 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 ""
+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:4997
 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 ""
+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} ett @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:5002
 msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
-msgstr ""
+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:5007
 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 ""
+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:5012
 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 ""
+msgstr "Les gexps transportent des informatinos 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:5014 doc/guix.texi:5517
 #, no-wrap
 msgid "lowering, of high-level objects in gexps"
-msgstr ""
+msgstr "abaissement, des objets haut-niveau dans les gepxs"
 
 #. type: Plain text
 #: doc/guix.texi:5024
 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 ""
+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:5026
 msgid "To illustrate the idea, here is an example of a gexp:"
-msgstr ""
+msgstr "Pour illustrer cette idée, voici un exemple de gexp :"
 
 #. type: example
 #: doc/guix.texi:5034
@@ -9624,33 +9699,39 @@ msgid ""
 "      (symlink (string-append #$coreutils \"/bin/ls\")\n"
 "               \"list-files\")))\n"
 msgstr ""
+"(define build-exp\n"
+"  #~(begin\n"
+"      (mkdir #$output)\n"
+"      (chdir #$output)\n"
+"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
+"               \"list-files\")))\n"
 
 #. type: Plain text
 #: doc/guix.texi:5039
 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 ""
+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:5042
 #, no-wrap
 msgid "(gexp->derivation \"the-thing\" build-exp)\n"
-msgstr ""
+msgstr "(gexp->derivation \"the-thing\" build-exp)\n"
 
 #. type: Plain text
 #: doc/guix.texi:5050
 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 ""
+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:5051
 #, no-wrap
 msgid "cross compilation"
-msgstr ""
+msgstr "compilation croisée"
 
 #. type: Plain text
 #: doc/guix.texi:5057
 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 ""
+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:5067
@@ -9665,28 +9746,36 @@ msgid ""
 "                (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:5073
 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 ""
+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:5074
 #, no-wrap
 msgid "imported modules, for gexps"
-msgstr ""
+msgstr "modules importés, pour les gexps"
 
 #. type: findex
 #: doc/guix.texi:5075
 #, no-wrap
 msgid "with-imported-modules"
-msgstr ""
+msgstr "with-imported-modules"
 
 #. type: Plain text
 #: doc/guix.texi:5080
 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 ""
+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:5091
@@ -9702,28 +9791,37 @@ msgid ""
 "                        (display \"success!\\n\")\n"
 "                        #t)))\n"
 msgstr ""
+"(let ((build (with-imported-modules '((guix build utils))\n"
+"               #~(begin\n"
+"                   (use-modules (guix build utils))\n"
+"                   (mkdir-p (string-append #$output \"/bin\"))))))\n"
+"  (gexp->derivation \"empty-dir\"\n"
+"                    #~(begin\n"
+"                        #$build\n"
+"                        (display \"success!\\n\")\n"
+"                        #t)))\n"
 
 #. type: Plain text
 #: doc/guix.texi:5097
 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 ""
+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:5098
 #, no-wrap
 msgid "module closure"
-msgstr ""
+msgstr "closure de module"
 
 #. type: findex
 #: doc/guix.texi:5099
 #, no-wrap
 msgid "source-module-closure"
-msgstr ""
+msgstr "source-module-closure"
 
 #. type: Plain text
 #: doc/guix.texi:5106
 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 ""
+msgstr "Typiquement, vous voudriez que la @emph{closure} complète du mondule 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:5109
@@ -9732,6 +9830,8 @@ msgid ""
 "(use-modules (guix modules))   ;for 'source-module-closure'\n"
 "\n"
 msgstr ""
+"(use-modules (guix modules))   ;pour 'source-module-closure'\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:5118
@@ -9746,23 +9846,31 @@ msgid ""
 "                                     (gnu build vm))\n"
 "                        @dots{})))\n"
 msgstr ""
+"(with-imported-modules (source-module-closure\n"
+"                         '((guix build utils)\n"
+"                           (gnu build vm)))\n"
+"  (gexp->derivation \"something-with-vms\"\n"
+"                    #~(begin\n"
+"                        (use-modules (guix build utils)\n"
+"                                     (gnu build vm))\n"
+"                        @dots{})))\n"
 
 #. type: cindex
 #: doc/guix.texi:5120
 #, no-wrap
 msgid "extensions, for gexps"
-msgstr ""
+msgstr "extensions, des gexps"
 
 #. type: findex
 #: doc/guix.texi:5121
 #, no-wrap
 msgid "with-extensions"
-msgstr ""
+msgstr "with-extensions"
 
 #. type: Plain text
 #: doc/guix.texi:5126
 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 ""
+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:5129
@@ -9771,6 +9879,8 @@ msgid ""
 "(use-modules (gnu packages guile))  ;for 'guile-json'\n"
 "\n"
 msgstr ""
+"(use-modules (gnu packages guile))  ;pour 'guile-json'\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:5135
@@ -9782,183 +9892,188 @@ msgid ""
 "                        (use-modules (json))\n"
 "                        @dots{})))\n"
 msgstr ""
+"(with-extensions (list guile-json)\n"
+"  (gexp->derivation \"something-with-json\"\n"
+"                    #~(begin\n"
+"                        (use-modules (json))\n"
+"                        @dots{})))\n"
 
 #. type: Plain text
 #: doc/guix.texi:5138
 msgid "The syntactic form to construct gexps is summarized below."
-msgstr ""
+msgstr "La forme syntaxique pour construire des gexps est résumée ci-dessous."
 
 #. type: deffn
 #: doc/guix.texi:5139
 #, no-wrap
 msgid "{Scheme Syntax} #~@var{exp}"
-msgstr ""
+msgstr "{Syntaxe Scheme} #~@var{exp}"
 
 #. type: deffnx
 #: doc/guix.texi:5140
 #, no-wrap
 msgid "{Scheme Syntax} (gexp @var{exp})"
-msgstr ""
+msgstr "{Syntaxe Scheme} (gexp @var{exp})"
 
 #. type: deffn
 #: doc/guix.texi:5143
 msgid "Return a G-expression containing @var{exp}.  @var{exp} may contain one or more of the following forms:"
-msgstr ""
+msgstr "Renvoie une G-expression contenant @var{exp}.  @var{exp} peut contenir une ou plusieurs de ces formes :"
 
 #. type: item
 #: doc/guix.texi:5145
 #, no-wrap
 msgid "#$@var{obj}"
-msgstr ""
+msgstr "#$@var{obj}"
 
 #. type: itemx
 #: doc/guix.texi:5146
 #, no-wrap
 msgid "(ungexp @var{obj})"
-msgstr ""
+msgstr "(ungexp @var{obj})"
 
 #. type: table
 #: doc/guix.texi:5151
 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 ""
+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:5154
 msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
-msgstr ""
+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:5157
 msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
-msgstr ""
+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:5159
 msgid "If @var{obj} is another kind of object, it is inserted as is."
-msgstr ""
+msgstr "Si @var{obj} est un autre type d'objet, il est inséré tel quel."
 
 #. type: item
 #: doc/guix.texi:5160
 #, no-wrap
 msgid "#$@var{obj}:@var{output}"
-msgstr ""
+msgstr "#$@var{obj}:@var{output}"
 
 #. type: itemx
 #: doc/guix.texi:5161
 #, no-wrap
 msgid "(ungexp @var{obj} @var{output})"
-msgstr ""
+msgstr "(ungexp @var{obj} @var{output})"
 
 #. type: table
 #: doc/guix.texi:5165
 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 ""
+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:5166
 #, no-wrap
 msgid "#+@var{obj}"
-msgstr ""
+msgstr "#+@var{obj}"
 
 #. type: itemx
 #: doc/guix.texi:5167
 #, no-wrap
 msgid "#+@var{obj}:output"
-msgstr ""
+msgstr "#+@var{obj}:output"
 
 #. type: itemx
 #: doc/guix.texi:5168
 #, no-wrap
 msgid "(ungexp-native @var{obj})"
-msgstr ""
+msgstr "(ungexp-native @var{obj})"
 
 #. type: itemx
 #: doc/guix.texi:5169
 #, no-wrap
 msgid "(ungexp-native @var{obj} @var{output})"
-msgstr ""
+msgstr "(ungexp-native @var{obj} @var{output})"
 
 #. type: table
 #: doc/guix.texi:5172
 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 ""
+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:5173
 #, no-wrap
 msgid "#$output[:@var{output}]"
-msgstr ""
+msgstr "#$output[:@var{output}]"
 
 #. type: itemx
 #: doc/guix.texi:5174
 #, no-wrap
 msgid "(ungexp output [@var{output}])"
-msgstr ""
+msgstr "(ungexp output [@var{output}])"
 
 #. type: table
 #: doc/guix.texi:5177
 msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
-msgstr ""
+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:5179
 msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
-msgstr ""
+msgstr "Cela ne fait du sens que pour les gexps passées à @code{gexp->derivation}."
 
 #. type: item
 #: doc/guix.texi:5180
 #, no-wrap
 msgid "#$@@@var{lst}"
-msgstr ""
+msgstr "#$@@@var{lst}"
 
 #. type: itemx
 #: doc/guix.texi:5181
 #, no-wrap
 msgid "(ungexp-splicing @var{lst})"
-msgstr ""
+msgstr "(ungexp-splicing @var{lst})"
 
 #. type: table
 #: doc/guix.texi:5184
 msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
-msgstr ""
+msgstr "Comme au dessus, mais recolle (@i{splice}) le contenu de @var{lst} dans la liste qui la contient."
 
 #. type: item
 #: doc/guix.texi:5185
 #, no-wrap
 msgid "#+@@@var{lst}"
-msgstr ""
+msgstr "#+@@@var{lst}"
 
 #. type: itemx
 #: doc/guix.texi:5186
 #, no-wrap
 msgid "(ungexp-native-splicing @var{lst})"
-msgstr ""
+msgstr "(ungexp-native-splicing @var{lst})"
 
 #. type: table
 #: doc/guix.texi:5189
 msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
-msgstr ""
+msgstr "Comme au dessus, mais se réfère à la construction native des objets listés dans @var{lst}."
 
 #. type: deffn
 #: doc/guix.texi:5194
 msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
-msgstr ""
+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:5196
 #, no-wrap
 msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
-msgstr ""
+msgstr "{Syntaxe Scheme} with-imported-modules @var{modules} @var{body}@dots{}"
 
 #. type: deffn
 #: doc/guix.texi:5199
 msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
-msgstr ""
+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:5203
 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 ""
+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:5209
@@ -9969,79 +10084,95 @@ msgid ""
 "  ((guix config) => ,(scheme-file \"config.scm\"\n"
 "                                  #~(define-module @dots{}))))\n"
 msgstr ""
+"`((guix build utils)\n"
+"  (guix gcrypt)\n"
+"  ((guix config) => ,(scheme-file \"config.scm\"\n"
+"                                  #~(define-module @dots{}))))\n"
 
 #. type: deffn
 #: doc/guix.texi:5214
 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 ""
+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:5218
 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 ""
+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:5220
 #, no-wrap
 msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
-msgstr ""
+msgstr "{Syntaxe Scheme} with-extensions @var{extensions} @var{body}@dots{}"
 
 #. type: deffn
 #: doc/guix.texi:5225
 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 ""
+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:5230
 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 ""
+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:5232
 #, no-wrap
 msgid "{Scheme Procedure} gexp? @var{obj}"
-msgstr ""
+msgstr "{Procédure Scheme} gexp? @var{obj}"
 
 #. type: deffn
 #: doc/guix.texi:5234
 msgid "Return @code{#t} if @var{obj} is a G-expression."
-msgstr ""
+msgstr "Renvoie @code{#t} si @var{obj} est une G-expression."
 
 #. type: Plain text
 #: doc/guix.texi:5240
 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 ""
+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:5241
 #, no-wrap
 msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
-msgstr ""
+msgstr "{Procédure Monadique} gexp->derivation @var{name} @var{exp} @"
 
 #. type: deffn
 #: doc/guix.texi:5258
 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] [#: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] [#:guile-for-build #f]\n"
+"Renvoie une dérivation @var{name} qui lance @var{exp} (une gexp) avec @var{guile-for-build} (une dérivation) sur @var{system} ; @var{exp} est stocké dans un fichier appelé @var{script-name}.  Lorsque @var{target} est vraie, elle est utilisée comme triplet de cible de compilation croisée pour les paquets référencés par @var{exp}."
 
 #. type: deffn
 #: doc/guix.texi:5266
 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 ""
+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:5269
 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 ""
+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:5272
 msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
-msgstr ""
+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:5275
 msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
-msgstr ""
+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:5282
@@ -10053,37 +10184,42 @@ msgid ""
 "(@var{file-name} @var{derivation} @var{output})\n"
 "(@var{file-name} @var{store-item})\n"
 msgstr ""
+"(@var{file-name} @var{package})\n"
+"(@var{file-name} @var{package} @var{output})\n"
+"(@var{file-name} @var{derivation})\n"
+"(@var{file-name} @var{derivation} @var{output})\n"
+"(@var{file-name} @var{store-item})\n"
 
 #. type: deffn
 #: doc/guix.texi:5288
 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 ""
+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:5294
 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 ""
+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:5297
 msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules.  It can be @code{#f}, @code{#t}, or @code{'detailed}."
-msgstr ""
+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:5299
 msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
-msgstr ""
+msgstr "Les autres arguments sont les mêmes que pour @code{derivation} (@pxref{Derivations})."
 
 #. type: cindex
 #: doc/guix.texi:5301
 #, no-wrap
 msgid "file-like objects"
-msgstr ""
+msgstr "objets simili-fichiers"
 
 #. type: Plain text
 #: doc/guix.texi:5306
 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 ""
+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:5310
@@ -10092,75 +10228,83 @@ 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/my-nscd.conf\"))\n"
 
 #. type: Plain text
 #: doc/guix.texi:5319
 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 ""
+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:5320
 #, no-wrap
 msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
-msgstr ""
+msgstr "{Procédure Scheme} local-file @var{file} [@var{name}] @"
 
 #. type: deffn
 #: doc/guix.texi:5326
 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:5338
 msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
-msgstr ""
+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:5340
 #, no-wrap
 msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
-msgstr ""
+msgstr "{Procédure Scheme} plain-file @var{name} @var{content}"
 
 #. type: deffn
 #: doc/guix.texi:5343
 msgid "Return an object representing a text file called @var{name} with the given @var{content} (a string) to be added to the store."
-msgstr ""
+msgstr "Renvoie un objet représentant un fichier texte nommé @var{name} avec pour contenu @var{content} (une chaîne de caractères) à ajouter un dépôt."
 
 #. type: deffn
 #: doc/guix.texi:5345
 msgid "This is the declarative counterpart of @code{text-file}."
-msgstr ""
+msgstr "C'est la version déclarative de @code{text-file}."
 
 #. type: deffn
 #: doc/guix.texi:5347
 #, no-wrap
 msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
-msgstr ""
+msgstr "{Procédure Scheme} computed-file @var{name} @var{gexp} @"
 
 #. type: deffn
 #: doc/guix.texi:5352
 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:5354
 msgid "This is the declarative counterpart of @code{gexp->derivation}."
-msgstr ""
+msgstr "C'est la version déclarative de @code{gexp->derivation}."
 
 #. type: deffn
 #: doc/guix.texi:5356
 #, no-wrap
 msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
-msgstr ""
+msgstr "{Procédure monadique} gexp->script @var{name} @var{exp} @"
 
 #. type: deffn
 #: doc/guix.texi:5361
 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:5364
 msgid "The example below builds a script that simply invokes the @command{ls} command:"
-msgstr ""
+msgstr "L'exemple ci-dessous construit un script qui invoque simplement la commande @command{ls} :"
 
 #. type: example
 #: doc/guix.texi:5367
@@ -10169,6 +10313,8 @@ 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:5371
@@ -10178,11 +10324,14 @@ msgid ""
 "              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
 "                       \"ls\"))\n"
 msgstr ""
+"(gexp->script \"list-files\"\n"
+"              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
+"                       \"ls\"))\n"
 
 #. type: deffn
 #: doc/guix.texi:5376
 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 ""
+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:5381
@@ -10192,75 +10341,84 @@ msgid ""
 "!#\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:5384
 #, no-wrap
 msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
-msgstr ""
+msgstr "{Procédure Scheme} program-file @var{name} @var{exp} @"
 
 #. type: deffn
 #: doc/guix.texi:5389
 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:5391
 msgid "This is the declarative counterpart of @code{gexp->script}."
-msgstr ""
+msgstr "C'est la version déclarative de @code{gexp->script}."
 
 #. type: deffn
 #: doc/guix.texi:5393
 #, no-wrap
 msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
-msgstr ""
+msgstr "{Procédure monadique} gexp->file @var{name} @var{exp} @"
 
 #. type: deffn
 #: doc/guix.texi:5400
 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"
+"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:5405
 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 ""
+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:5408
 msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
-msgstr ""
+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:5410
 #, no-wrap
 msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
-msgstr "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
+msgstr "{Procédure Scheme} scheme-file @var{name} @var{exp} [#:splice? #f]"
 
 #. type: deffn
 #: doc/guix.texi:5413
 msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
-msgstr ""
+msgstr "Renvoie un objet représentant le fichier Scheme @var{name} qui contient @var{exp}."
 
 #. type: deffn
 #: doc/guix.texi:5415
 msgid "This is the declarative counterpart of @code{gexp->file}."
-msgstr ""
+msgstr "C'est la version déclarative de @code{gexp->file}."
 
 #. type: deffn
 #: doc/guix.texi:5417
 #, no-wrap
 msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
-msgstr ""
+msgstr "{Procédure monadique} text-file* @var{name} @var{text} @dots{}"
 
 #. type: deffn
 #: doc/guix.texi:5423
 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 ""
+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:5428
 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 ""
+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:5436
@@ -10273,22 +10431,28 @@ msgid ""
 "              \"export PATH=\" coreutils \"/bin:\"\n"
 "              grep \"/bin:\" sed \"/bin\\n\"))\n"
 msgstr ""
+"(define (profile.sh)\n"
+"  ;; Renvoie le nom d'un script shell dans le dépôt qui initialise\n"
+"  ;; la variable d'environnement « PATH ».\n"
+"  (text-file* \"profile.sh\"\n"
+"              \"export PATH=\" coreutils \"/bin:\"\n"
+"              grep \"/bin:\" sed \"/bin\\n\"))\n"
 
 #. type: deffn
 #: doc/guix.texi:5441
 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 ""
+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:5443
 #, no-wrap
 msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
-msgstr ""
+msgstr "{Procédure Scheme} mixed-text-file @var{name} @var{text} @dots{}"
 
 #. type: deffn
 #: doc/guix.texi:5447
 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 ""
+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:5451
@@ -10297,22 +10461,24 @@ msgid ""
 "(mixed-text-file \"profile\"\n"
 "                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 msgstr ""
+"(mixed-text-file \"profile\"\n"
+"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
 
 #. type: deffn
 #: doc/guix.texi:5454
 msgid "This is the declarative counterpart of @code{text-file*}."
-msgstr ""
+msgstr "C'est la version déclarative de @code{text-file*}."
 
 #. type: deffn
 #: doc/guix.texi:5456
 #, no-wrap
 msgid "{Scheme Procedure} file-union @var{name} @var{files}"
-msgstr ""
+msgstr "{Procédure Scheme} file-union @var{name} @var{files}"
 
 #. type: deffn
 #: doc/guix.texi:5461
 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 ""
+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:5468
@@ -10324,49 +10490,54 @@ msgid ""
 "              (\"bashrc\" ,(plain-file \"bashrc\"\n"
 "                                     \"alias ls='ls --color'\"))))\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'\"))))\n"
 
 #. type: deffn
 #: doc/guix.texi:5471
 msgid "This yields an @code{etc} directory containing these two files."
-msgstr ""
+msgstr "Cela crée un répertoire @code{etc} contenant ces deux fichiers."
 
 #. type: deffn
 #: doc/guix.texi:5473
 #, no-wrap
 msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
-msgstr ""
+msgstr "{Procédure Scheme} directory-union @var{name} @var{things}"
 
 #. type: deffn
 #: doc/guix.texi:5476
 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 ""
+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:5479
 #, no-wrap
 msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
-msgstr ""
+msgstr "(directory-union \"guile+emacs\" (list guile emacs))\n"
 
 #. type: deffn
 #: doc/guix.texi:5482
 msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
-msgstr ""
+msgstr "crée un répertoire qui est l'union des paquets @code{guile} et @code{emacs}."
 
 #. type: deffn
 #: doc/guix.texi:5484
 #, no-wrap
 msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
-msgstr ""
+msgstr "{Procédure Scheme} file-append @var{obj} @var{suffix} @dots{}"
 
 #. type: deffn
 #: doc/guix.texi:5488
 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 ""
+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:5490
 msgid "As an example, consider this gexp:"
-msgstr ""
+msgstr "Par exemple, considérez cette gexp :"
 
 #. type: example
 #: doc/guix.texi:5495
@@ -10376,11 +10547,14 @@ msgid ""
 "              #~(system* #$(file-append coreutils\n"
 "                                        \"/bin/uname\")))\n"
 msgstr ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* #$(file-append coreutils\n"
+"                                        \"/bin/uname\")))\n"
 
 #. type: deffn
 #: doc/guix.texi:5498
 msgid "The same effect could be achieved with:"
-msgstr ""
+msgstr "On peut obtenir le même effet avec :"
 
 #. type: example
 #: doc/guix.texi:5503
@@ -10390,32 +10564,37 @@ msgid ""
 "              #~(system* (string-append #$coreutils\n"
 "                                        \"/bin/uname\")))\n"
 msgstr ""
+"(gexp->script \"run-uname\"\n"
+"              #~(system* (string-append #$coreutils\n"
+"                                        \"/bin/uname\")))\n"
 
 #. type: deffn
 #: doc/guix.texi:5509
 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 ""
+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:5516
 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 ""
+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:5522
 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 ""
+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:5523
 #, no-wrap
 msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
-msgstr ""
+msgstr "{Procédure Monadique} lower-object @var{obj} [@var{system}] @"
 
 #. type: deffn
 #: doc/guix.texi:5529
 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: Plain text
 #: doc/guix.texi:5540
@@ -10437,7 +10616,7 @@ msgstr "guix build"
 #. type: Plain text
 #: doc/guix.texi:5569
 msgid "The @command{guix build} command builds packages or derivations and their dependencies, and prints the resulting store paths.  Note that it does not modify the user's profile---this is the job of the @command{guix package} command (@pxref{Invoking guix package}).  Thus, it is mainly useful for distribution developers."
-msgstr ""
+msgstr "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:5571 doc/guix.texi:6235 doc/guix.texi:6302 doc/guix.texi:6995
@@ -10450,23 +10629,23 @@ msgstr "La syntaxe générale est :"
 #: doc/guix.texi:5574
 #, no-wrap
 msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
-msgstr ""
+msgstr "guix build @var{options} @var{package-or-derivation}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:5579
 msgid "As an example, the following command builds the latest versions of Emacs and of Guile, displays their build logs, and finally displays the resulting directories:"
-msgstr ""
+msgstr "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:5582
 #, no-wrap
 msgid "guix build emacs guile\n"
-msgstr ""
+msgstr "guix build emacs guile\n"
 
 #. type: Plain text
 #: doc/guix.texi:5585
 msgid "Similarly, the following command builds all the available packages:"
-msgstr ""
+msgstr "De même, la commande suivante construit tous les paquets disponibles :"
 
 #. type: example
 #: doc/guix.texi:5589
@@ -10475,130 +10654,132 @@ 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:5597
 msgid "@var{package-or-derivation} may be either the name of a package found in the software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the former case, a package with the corresponding name (and optionally version) is searched for among the GNU distribution modules (@pxref{Package Modules})."
-msgstr ""
+msgstr "@var{package-or-derivation} 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:5602
 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 ""
+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:5605
 msgid "There may be zero or more @var{options}.  The available options are described in the subsections below."
-msgstr ""
+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:5620
 msgid "A number of options that control the build process are common to @command{guix build} and other commands that can spawn builds, such as @command{guix package} or @command{guix archive}.  These are the following:"
-msgstr ""
+msgstr "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:5623
 #, no-wrap
 msgid "--load-path=@var{directory}"
-msgstr ""
+msgstr "--load-path=@var{répertoire}"
 
 #. type: itemx
 #: doc/guix.texi:5624
 #, no-wrap
 msgid "-L @var{directory}"
-msgstr ""
+msgstr "-L @var{répertoire}"
 
 #. type: table
 #: doc/guix.texi:5627
 msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
-msgstr ""
+msgstr "Ajoute @var{répertoire} au début du chemin de recherche de module de paquets (@pxref{Package Modules})."
 
 #. type: table
 #: doc/guix.texi:5630
 msgid "This allows users to define their own packages and make them visible to the command-line tools."
-msgstr ""
+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:5631
 #, no-wrap
 msgid "--keep-failed"
-msgstr ""
+msgstr "--keep-failed"
 
 #. type: itemx
 #: doc/guix.texi:5632
 #, no-wrap
 msgid "-K"
-msgstr ""
+msgstr "-K"
 
 #. type: table
 #: doc/guix.texi:5638
 msgid "Keep the build tree of failed builds.  Thus, if a build fails, its build tree is kept under @file{/tmp}, in a directory whose name is shown at the end of the build log.  This is useful when debugging build issues.  @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues."
-msgstr ""
+msgstr "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: item
 #: doc/guix.texi:5639
 #, no-wrap
 msgid "--keep-going"
-msgstr ""
+msgstr "--keep-going"
 
 #. type: itemx
 #: doc/guix.texi:5640
 #, no-wrap
 msgid "-k"
-msgstr ""
+msgstr "-k"
 
 #. type: table
 #: doc/guix.texi:5643
 msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
-msgstr ""
+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:5646
 msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
-msgstr ""
+msgstr "Le comportement par défaut est de s'arrêter dès qu'une des dérivations spécifiées échoue."
 
 #. type: item
 #: doc/guix.texi:5647
 #, no-wrap
 msgid "--dry-run"
-msgstr ""
+msgstr "--dry-run"
 
 #. type: itemx
 #: doc/guix.texi:5648
 #, no-wrap
 msgid "-n"
-msgstr ""
+msgstr "-n"
 
 #. type: table
 #: doc/guix.texi:5650
 msgid "Do not build the derivations."
-msgstr ""
+msgstr "Ne pas construire les dérivations."
 
 #. type: anchor{#1}
 #: doc/guix.texi:5652
 msgid "fallback-option"
-msgstr ""
+msgstr "option de repli"
 
 #. type: item
 #: doc/guix.texi:5652
 #, no-wrap
 msgid "--fallback"
-msgstr ""
+msgstr "--fallback"
 
 #. type: table
 #: doc/guix.texi:5655
 msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
-msgstr ""
+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:5661
 msgid "client-substitute-urls"
-msgstr ""
+msgstr "client-substitute-urls"
 
 #. type: table
 #: doc/guix.texi:5661
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs, overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-substitute-urls,, @command{guix-daemon} URLs})."
-msgstr ""
+msgstr "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:5665
@@ -10608,178 +10789,178 @@ msgstr "Cela signifie que les substituts peuvent être téléchargés depuis @va
 #. type: table
 #: doc/guix.texi:5668
 msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
-msgstr ""
+msgstr "Lorsque @var{urls} est la chaîne vide, cela a pour effet de désactiver la substitution."
 
 #. type: item
 #: doc/guix.texi:5674
 #, no-wrap
 msgid "--no-grafts"
-msgstr ""
+msgstr "--no-grafts"
 
 #. type: table
 #: doc/guix.texi:5678
 msgid "Do not ``graft'' packages.  In practice, this means that package updates available as grafts are not applied.  @xref{Security Updates}, for more information on grafts."
-msgstr ""
+msgstr "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:5679
 #, no-wrap
 msgid "--rounds=@var{n}"
-msgstr ""
+msgstr "--rounds=@var{n}"
 
 #. type: table
 #: doc/guix.texi:5682
 msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
-msgstr ""
+msgstr "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:5687
 msgid "This is a useful way to detect non-deterministic builds processes.  Non-deterministic build processes are a problem because they make it practically impossible for users to @emph{verify} whether third-party binaries are genuine.  @xref{Invoking guix challenge}, for more."
-msgstr ""
+msgstr "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:5693
 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 ""
+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:5698
 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 ""
+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:5705
 msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
-msgstr ""
+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:5712
 msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
-msgstr ""
+msgstr "Par défaut, les paramètres du démon sont pris en compte (@pxref{Invoking guix-daemon, @code{--timeout}})."
 
 #. type: item
 #: doc/guix.texi:5713
 #, no-wrap
 msgid "--verbosity=@var{level}"
-msgstr ""
+msgstr "--verbosity=@var{level}"
 
 #. type: table
 #: doc/guix.texi:5717
 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 ""
+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."
 
 #. type: table
 #: doc/guix.texi:5722
 msgid "Allow the use of up to @var{n} CPU cores for the build.  The special value @code{0} means to use as many CPU cores as available."
-msgstr ""
+msgstr "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:5728
 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 ""
+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: Plain text
 #: doc/guix.texi:5735
 msgid "Behind the scenes, @command{guix build} is essentially an interface to the @code{package-derivation} procedure of the @code{(guix packages)} module, and to the @code{build-derivations} procedure of the @code{(guix derivations)} module."
-msgstr ""
+msgstr "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:5739
 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 ""
+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:5740
 #, no-wrap
 msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
-msgstr ""
+msgstr "{Variable d'environnement} GUIX_BUILD_OPTIONS"
 
 #. type: defvr
 #: doc/guix.texi:5745
 msgid "Users can define this variable to a list of command line options that will automatically be used by @command{guix build} and other @command{guix} commands that can perform builds, as in the example below:"
-msgstr ""
+msgstr "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:5748
 #, no-wrap
 msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
-msgstr ""
+msgstr "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
 
 #. type: defvr
 #: doc/guix.texi:5752
 msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
-msgstr ""
+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:5758
 #, no-wrap
 msgid "package variants"
-msgstr ""
+msgstr "variantes de paquets"
 
 #. type: Plain text
 #: doc/guix.texi:5766
 msgid "Another set of command-line options supported by @command{guix build} and also @command{guix package} are @dfn{package transformation options}.  These are options that make it possible to define @dfn{package variants}---for instance, packages built from different source code.  This is a convenient way to create customized packages on the fly without having to type in the definitions of package variants (@pxref{Defining Packages})."
-msgstr ""
+msgstr "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:5769
 #, no-wrap
 msgid "--with-source=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{source}"
 
 #. type: itemx
 #: doc/guix.texi:5770
 #, no-wrap
 msgid "--with-source=@var{package}=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{paquet}=@var{source}"
 
 #. type: itemx
 #: doc/guix.texi:5771
 #, no-wrap
 msgid "--with-source=@var{package}@@@var{version}=@var{source}"
-msgstr ""
+msgstr "--with-source=@var{paquet}@@@var{version}=@var{source}"
 
 #. type: table
 #: doc/guix.texi:5776
 msgid "Use @var{source} as the source of @var{package}, and @var{version} as its version number.  @var{source} must be a file name or a URL, as for @command{guix download} (@pxref{Invoking guix download})."
-msgstr ""
+msgstr "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:5782
 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 ""
+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:5785
 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 ""
+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:5790
 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 ""
+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 mirroir GNU et l'utilise comme source pour le paquet @code{ed} :"
 
 #. type: example
 #: doc/guix.texi:5793
 #, no-wrap
 msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
-msgstr ""
+msgstr "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
 
 #. type: table
 #: doc/guix.texi:5797
 msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
-msgstr ""
+msgstr "En tant que développeur, @code{--with-source} permet de tester facilement des version bêta :"
 
 #. type: example
 #: doc/guix.texi:5800
 #, no-wrap
 msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
-msgstr ""
+msgstr "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
 
 #. type: table
 #: doc/guix.texi:5803
 msgid "@dots{} or to build from a checkout in a pristine environment:"
-msgstr ""
+msgstr "@dots{} ou pour construire un dépôt de gestion de version dans un environnement vierge :"
 
 #. type: example
 #: doc/guix.texi:5807
@@ -10788,183 +10969,185 @@ 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:5809
 #, no-wrap
 msgid "--with-input=@var{package}=@var{replacement}"
-msgstr ""
+msgstr "--with-input=@var{paquet}=@var{remplaçant}"
 
 #. type: table
 #: doc/guix.texi:5814
 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 ""
+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:5818
 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 ""
+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:5821
 #, no-wrap
 msgid "guix build --with-input=guile=guile@@2.0 guix\n"
-msgstr ""
+msgstr "guix build --with-input=guile=guile@@2.0 guix\n"
 
 #. type: table
 #: doc/guix.texi:5826
 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 ""
+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:5829
 msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
-msgstr ""
+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:5830
 #, no-wrap
 msgid "--with-graft=@var{package}=@var{replacement}"
-msgstr ""
+msgstr "--with-graft=@var{paquet}=@var{remplaçant}"
 
 #. type: table
 #: doc/guix.texi:5836
 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 ""
+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:5840
 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 ""
+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:5843
 #, no-wrap
 msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
-msgstr ""
+msgstr "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
 
 #. type: table
 #: doc/guix.texi:5852
 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 ""
+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: Plain text
 #: doc/guix.texi:5860
 msgid "The command-line options presented below are specific to @command{guix build}."
-msgstr ""
+msgstr "Les options de la ligne de commande ci-dessous sont spécifiques à @command{guix build}."
 
 #. type: item
 #: doc/guix.texi:5863
 #, no-wrap
 msgid "--quiet"
-msgstr ""
+msgstr "--quiet"
 
 #. type: itemx
 #: doc/guix.texi:5864
 #, no-wrap
 msgid "-q"
-msgstr ""
+msgstr "-q"
 
 #. type: table
 #: doc/guix.texi:5868
 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 ""
+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}."
 
 #. type: item
 #: doc/guix.texi:5869
 #, no-wrap
 msgid "--file=@var{file}"
-msgstr ""
+msgstr "--file=@var{fichier}"
 
 #. type: table
 #: doc/guix.texi:5874
 msgid "Build the package or derivation that the code within @var{file} evaluates to."
-msgstr ""
+msgstr "Construit le paquet ou la dérivation en lequel le code dans @var{file} s'évalue."
 
 #. type: table
 #: doc/guix.texi:5877
 msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
-msgstr ""
+msgstr "Par exemple, @var{file} peut contenir une définition de paquet comme ceci (@pxref{Defining Packages}) :"
 
 #. type: table
 #: doc/guix.texi:5885
 msgid "Build the package or derivation @var{expr} evaluates to."
-msgstr ""
+msgstr "Construit le paquet ou la dérivation en lequel @var{expr} s'évalue."
 
 #. type: table
 #: doc/guix.texi:5889
 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 "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:5893
 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 "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:5897
 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 "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:5898
 #, no-wrap
 msgid "--source"
-msgstr ""
+msgstr "--source"
 
 #. type: itemx
 #: doc/guix.texi:5899
 #, no-wrap
 msgid "-S"
-msgstr ""
+msgstr "-S"
 
 #. type: table
 #: doc/guix.texi:5902
 msgid "Build the source derivations of the packages, rather than the packages themselves."
-msgstr ""
+msgstr "Construit les dérivation source des paquets, plutôt que des paquets eux-même."
 
 #. type: table
 #: doc/guix.texi:5906
 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 "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:5910
 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 "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:5911
 #, no-wrap
 msgid "--sources"
-msgstr ""
+msgstr "--sources"
 
 #. type: table
 #: doc/guix.texi:5918
 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 "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:5920 doc/guix.texi:7184
 #, no-wrap
 msgid "package"
-msgstr ""
+msgstr "package"
 
 #. type: table
 #: doc/guix.texi:5923
 msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
-msgstr ""
+msgstr "Cette valeur fait que l'option @code{--sources} se comporte comme l'option @code{--source}."
 
 #. type: item
 #: doc/guix.texi:5924 doc/guix.texi:12103
 #, no-wrap
 msgid "all"
-msgstr ""
+msgstr "all"
 
 #. type: table
 #: doc/guix.texi:5927
 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 "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:5933
@@ -10975,17 +11158,21 @@ msgid ""
 "   /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:5935
 #, no-wrap
 msgid "transitive"
-msgstr ""
+msgstr "transitive"
 
 #. type: table
 #: doc/guix.texi:5939
 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 ""
+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."
 
 #. type: example
 #: doc/guix.texi:5950
@@ -11001,36 +11188,45 @@ msgid ""
 "   /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"
 
 #. type: quotation
 #: doc/guix.texi:5963
 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 "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:5970
 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 "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:5975
 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 "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:5981
 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 "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:5985
 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 "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:5993
 msgid "build-check"
-msgstr ""
+msgstr "vérification de la construction"
 
 #. type: item
 #: doc/guix.texi:5993
@@ -11053,7 +11249,7 @@ msgstr "reproductibilité, vérification"
 #. type: table
 #: doc/guix.texi:5999
 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 "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:6004
@@ -11070,84 +11266,84 @@ msgstr "--repair"
 #: doc/guix.texi:6010
 #, no-wrap
 msgid "repairing store items"
-msgstr ""
+msgstr "réparer les éléments du dépôt"
 
 #. type: table
 #: doc/guix.texi:6014
 msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
-msgstr ""
+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:6016
 msgid "This operation is not atomic and thus restricted to @code{root}."
-msgstr ""
+msgstr "Cette opération n'est pas atomique et donc restreinte à l'utilisateur @code{root}"
 
 #. type: item
 #: doc/guix.texi:6017
 #, no-wrap
 msgid "--derivations"
-msgstr ""
+msgstr "--derivations"
 
 #. type: table
 #: doc/guix.texi:6021
 msgid "Return the derivation paths, not the output paths, of the given packages."
-msgstr ""
+msgstr "Renvoie les chemins de dérivation, et non les chemins de sortie, des paquets donnés."
 
 #. type: item
 #: doc/guix.texi:6022 doc/guix.texi:7441 doc/guix.texi:21109
 #, no-wrap
 msgid "--root=@var{file}"
-msgstr ""
+msgstr "--root=@var{fichier}"
 
 #. type: itemx
 #: doc/guix.texi:6023 doc/guix.texi:7442 doc/guix.texi:21110
 #, no-wrap
 msgid "-r @var{file}"
-msgstr ""
+msgstr "-r @var{fichier}"
 
 #. type: cindex
 #: doc/guix.texi:6024
 #, no-wrap
 msgid "GC roots, adding"
-msgstr ""
+msgstr "racines du GC, ajout"
 
 #. type: cindex
 #: doc/guix.texi:6025
 #, no-wrap
 msgid "garbage collector roots, adding"
-msgstr ""
+msgstr "ajout de racines au ramasse-miettes"
 
 #. type: table
 #: doc/guix.texi:6028 doc/guix.texi:21113
 msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
-msgstr ""
+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:6034
 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 "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:6035
 #, no-wrap
 msgid "--log-file"
-msgstr ""
+msgstr "--log-file"
 
 #. type: cindex
 #: doc/guix.texi:6036
 #, no-wrap
 msgid "build logs, access"
-msgstr ""
+msgstr "journaux de construction, accès"
 
 #. type: table
 #: doc/guix.texi:6040
 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 "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:6043
 msgid "This works regardless of how packages or derivations are specified.  For instance, the following invocations are equivalent:"
-msgstr ""
+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:6049
@@ -11158,16 +11354,20 @@ 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:6054
 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 "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:6057
 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 "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:6061
@@ -11176,32 +11376,34 @@ msgid ""
 "$ guix build --log-file gdb -s mips64el-linux\n"
 "https://hydra.gnu.org/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"
 
 #. type: table
 #: doc/guix.texi:6064
 msgid "You can freely access a huge library of build logs!"
-msgstr ""
+msgstr "Vous pouvez accéder librement à un vaste bibliothèque de journaux de construction !"
 
 #. type: cindex
 #: doc/guix.texi:6069
 #, no-wrap
 msgid "build failures, debugging"
-msgstr ""
+msgstr "échecs de construction, débogage"
 
 #. type: Plain text
 #: doc/guix.texi:6075
 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 "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:6080
 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 "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:6086
 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 "À 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:6093
@@ -11213,21 +11415,26 @@ 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:6097
 msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
-msgstr ""
+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:6103
 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 "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:6106
 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 "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:6114
@@ -11240,250 +11447,256 @@ 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:6123
 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 "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:6126
 msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
-msgstr ""
+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:6129
 #, no-wrap
 msgid "[env]# rm /bin/sh\n"
-msgstr ""
+msgstr "[env]# rm /bin/sh\n"
 
 #. type: Plain text
 #: doc/guix.texi:6133
 msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
-msgstr ""
+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:6136
 msgid "The @command{strace} command is probably not in the search path, but we can run:"
-msgstr ""
+msgstr "La commande @command{strace} n'est probablement pas dans le chemin de recherche, mais on peut lancer :"
 
 #. type: example
 #: doc/guix.texi:6139
 #, 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:6144
 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 "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:6147
 #, no-wrap
 msgid "Invoking @command{guix edit}"
-msgstr ""
+msgstr "Invoquer @command{guix edit}"
 
 #. type: command{#1}
 #: doc/guix.texi:6149
 #, no-wrap
 msgid "guix edit"
-msgstr ""
+msgstr "guix edit"
 
 #. type: cindex
 #: doc/guix.texi:6150
 #, no-wrap
 msgid "package definition, editing"
-msgstr ""
+msgstr "définition de paquets, modification"
 
 #. type: Plain text
 #: doc/guix.texi:6155
 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 "Tant de paquets, tant de fichiers source ! La commande @command{guix edit} facilite la vie des utilisateurs et des packagers 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:6158
 #, 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:6164
 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 "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 cele de Vim."
 
 #. type: Plain text
 #: doc/guix.texi:6170
 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{Defining Packages}), you will be able to edit the package recipes. Otherwise, you will be able to examine the read-only recipes for packages currently in the store."
-msgstr ""
+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{Defining Packages}), 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:6173
 #, no-wrap
 msgid "Invoking @command{guix download}"
-msgstr ""
+msgstr "Invoquer @command{guix download}"
 
 #. type: command{#1}
 #: doc/guix.texi:6175
 #, no-wrap
 msgid "guix download"
-msgstr ""
+msgstr "guix download"
 
 #. type: cindex
 #: doc/guix.texi:6176
 #, no-wrap
 msgid "downloading package sources"
-msgstr ""
+msgstr "télécharger les sources des paquets"
 
 #. type: Plain text
 #: doc/guix.texi:6183
 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 "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:6190
 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 "Le fait que le fichier téléchargé soit ajouté au dépôt préserve la bande passante : losque 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:6198
 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 "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:6203
 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 "@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:6205 doc/guix.texi:7721
 msgid "The following options are available:"
-msgstr ""
+msgstr "Les options suivantes sont disponibles :"
 
 #. type: item
 #: doc/guix.texi:6207 doc/guix.texi:6246
 #, no-wrap
 msgid "--format=@var{fmt}"
-msgstr ""
+msgstr "--format=@var{fmt}"
 
 #. type: itemx
 #: doc/guix.texi:6208 doc/guix.texi:6247
 #, no-wrap
 msgid "-f @var{fmt}"
-msgstr ""
+msgstr "-f @var{fmt}"
 
 #. type: table
 #: doc/guix.texi:6211
 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 "É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:6212
 #, no-wrap
 msgid "--no-check-certificate"
-msgstr ""
+msgstr "--no-check-certificate"
 
 #. type: table
 #: doc/guix.texi:6214
 msgid "Do not validate the X.509 certificates of HTTPS servers."
-msgstr ""
+msgstr "Ne pas valider les certificats HTTPS des serveurs."
 
 #. type: table
 #: doc/guix.texi:6218
 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 "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:6219
 #, no-wrap
 msgid "--output=@var{file}"
-msgstr ""
+msgstr "--output=@var{fichier}"
 
 #. type: itemx
 #: doc/guix.texi:6220
 #, no-wrap
 msgid "-o @var{file}"
-msgstr ""
+msgstr "-o @var{fichier}"
 
 #. type: table
 #: doc/guix.texi:6223
 msgid "Save the downloaded file to @var{file} instead of adding it to the store."
-msgstr ""
+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:6226
 #, no-wrap
 msgid "Invoking @command{guix hash}"
-msgstr ""
+msgstr "Invoquer @command{guix hash}"
 
 #. type: command{#1}
 #: doc/guix.texi:6228
 #, no-wrap
 msgid "guix hash"
-msgstr ""
+msgstr "guix hash"
 
 #. type: Plain text
 #: doc/guix.texi:6233
 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 "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:6238
 #, no-wrap
 msgid "guix hash @var{option} @var{file}\n"
-msgstr ""
+msgstr "guix hash @var{option} @var{fichier}\n"
 
 #. type: Plain text
 #: doc/guix.texi:6243
 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 "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:6249
 msgid "Write the hash in the format specified by @var{fmt}."
-msgstr ""
+msgstr "Écrit le hash dans le format spécifié par @var{fmt}."
 
 #. type: table
 #: doc/guix.texi:6252
 msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
-msgstr ""
+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:6256
 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 "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:6260
 msgid "Compute the hash on @var{file} recursively."
-msgstr ""
+msgstr "Calcule le hash sur @var{fichier} récursivement."
 
 #. type: table
 #: doc/guix.texi:6269
 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 "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:6270
 #, no-wrap
 msgid "--exclude-vcs"
-msgstr ""
+msgstr "--exclude-vcs"
 
 #. type: itemx
 #: doc/guix.texi:6271
 #, no-wrap
 msgid "-x"
-msgstr ""
+msgstr "-x"
 
 #. type: table
 #: doc/guix.texi:6274
 msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
-msgstr ""
+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:6279
 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 "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:6284
@@ -11493,298 +11706,301 @@ msgid ""
 "$ 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:6288 doc/guix.texi:6293
 #, no-wrap
 msgid "Invoking @command{guix import}"
-msgstr ""
+msgstr "Invoquer @command{guix import}"
 
 #. type: cindex
 #: doc/guix.texi:6290
 #, no-wrap
 msgid "importing packages"
-msgstr ""
+msgstr "importer des paquets"
 
 #. type: cindex
 #: doc/guix.texi:6291
 #, no-wrap
 msgid "package import"
-msgstr ""
+msgstr "paquets importés"
 
 #. type: cindex
 #: doc/guix.texi:6292
 #, no-wrap
 msgid "package conversion"
-msgstr ""
+msgstr "conversion de paquets"
 
 #. type: Plain text
 #: doc/guix.texi:6300
 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 "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:6305
 #, no-wrap
 msgid "guix import @var{importer} @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix import @var{importer} @var{options}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:6311
 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 "@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:6313 doc/guix.texi:6772
 #, no-wrap
 msgid "gnu"
-msgstr ""
+msgstr "gnu"
 
 #. type: table
 #: doc/guix.texi:6317
 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 "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:6320
 msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
-msgstr ""
+msgstr "Les informations supplémentaires comme les dépendances du paquet et sa licence doivent être renseignées manuellement."
 
 #. type: table
 #: doc/guix.texi:6323
 msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
-msgstr ""
+msgstr "Par exemple, la commande suivante renvoie une définition de paquets pour GNU@tie{}Hello :"
 
 #. type: example
 #: doc/guix.texi:6326
 #, no-wrap
 msgid "guix import gnu hello\n"
-msgstr ""
+msgstr "guix import gnu hello\n"
 
 #. type: table
 #: doc/guix.texi:6329 doc/guix.texi:6547 doc/guix.texi:6592 doc/guix.texi:6616
 msgid "Specific command-line options are:"
-msgstr ""
+msgstr "Les options spécifiques sont :"
 
 #. type: item
 #: doc/guix.texi:6331 doc/guix.texi:6873
 #, no-wrap
 msgid "--key-download=@var{policy}"
-msgstr ""
+msgstr "--key-download=@var{politique}"
 
 #. type: table
 #: doc/guix.texi:6335
 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 "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:6337 doc/guix.texi:6338 doc/guix.texi:6790
 #, no-wrap
 msgid "pypi"
-msgstr ""
+msgstr "pypi"
 
 #. type: table
 #: doc/guix.texi:6346
 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 ""
+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."
 
 #. type: table
 #: doc/guix.texi:6349
 msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées du paquet Python @code{itsdangerous} :"
 
 #. type: example
 #: doc/guix.texi:6352
 #, no-wrap
 msgid "guix import pypi itsdangerous\n"
-msgstr ""
+msgstr "guix import pypi itsdangerous\n"
 
 #. type: item
 #: doc/guix.texi:6354 doc/guix.texi:6355 doc/guix.texi:6792
 #, no-wrap
 msgid "gem"
-msgstr ""
+msgstr "gem"
 
 #. type: table
 #: doc/guix.texi:6366
 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 ""
+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 au packager."
 
 #. type: table
 #: doc/guix.texi:6368
 msgid "The command below imports metadata for the @code{rails} Ruby package:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées pour le paquet Ruby @code{rails} :"
 
 #. type: example
 #: doc/guix.texi:6371
 #, no-wrap
 msgid "guix import gem rails\n"
-msgstr ""
+msgstr "guix import gem rails\n"
 
 #. type: item
 #: doc/guix.texi:6373 doc/guix.texi:6788
 #, no-wrap
 msgid "cpan"
-msgstr ""
+msgstr "cpan"
 
 #. type: cindex
 #: doc/guix.texi:6374
 #, no-wrap
 msgid "CPAN"
-msgstr ""
+msgstr "CPAN"
 
 #. type: table
 #: doc/guix.texi:6384
 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 ""
+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."
 
 #. type: table
 #: doc/guix.texi:6387
 msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées du module Perl @code{Acme::Boolean} :"
 
 #. type: example
 #: doc/guix.texi:6390
 #, no-wrap
 msgid "guix import cpan Acme::Boolean\n"
-msgstr ""
+msgstr "guix import cpan Acme::Boolean\n"
 
 #. type: item
 #: doc/guix.texi:6392 doc/guix.texi:6784
 #, no-wrap
 msgid "cran"
-msgstr ""
+msgstr "cran"
 
 #. type: cindex
 #: doc/guix.texi:6393
 #, no-wrap
 msgid "CRAN"
-msgstr ""
+msgstr "CRAN"
 
 #. type: cindex
 #: doc/guix.texi:6394
 #, no-wrap
 msgid "Bioconductor"
-msgstr ""
+msgstr "Bioconductor"
 
 #. type: table
 #: doc/guix.texi:6398
 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 "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:6400
 msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
-msgstr ""
+msgstr "Les informations sont extraites du fichier @file{DESCRIPTION} du paquet."
 
 #. type: table
 #: doc/guix.texi:6403
 msgid "The command command below imports metadata for the @code{Cairo} R package:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées du paquet R @code{Cairo} :"
 
 #. type: example
 #: doc/guix.texi:6406
 #, no-wrap
 msgid "guix import cran Cairo\n"
-msgstr ""
+msgstr "guix import cran Cairo\n"
 
 #. type: table
 #: doc/guix.texi:6411
 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 "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:6416
 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 "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:6419
 msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
-msgstr ""
+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:6422
 msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées du paquet R @code{GenomicRanges} :"
 
 #. type: example
 #: doc/guix.texi:6425
 #, no-wrap
 msgid "guix import cran --archive=bioconductor GenomicRanges\n"
-msgstr ""
+msgstr "guix import cran --archive=bioconductor GenomicRanges\n"
 
 #. type: item
 #: doc/guix.texi:6427
 #, no-wrap
 msgid "texlive"
-msgstr ""
+msgstr "texlive"
 
 #. type: cindex
 #: doc/guix.texi:6428
 #, no-wrap
 msgid "TeX Live"
-msgstr ""
+msgstr "TeX Live"
 
 #. type: cindex
 #: doc/guix.texi:6429
 #, no-wrap
 msgid "CTAN"
-msgstr ""
+msgstr "CTAN"
 
 #. type: table
 #: doc/guix.texi:6433
 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 "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:6438
 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 "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:6441
 msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
-msgstr ""
+msgstr "La commande ci-dessous importe les métadonnées du paquet TeX @code{fontspec} :"
 
 #. type: example
 #: doc/guix.texi:6444
 #, no-wrap
 msgid "guix import texlive fontspec\n"
-msgstr ""
+msgstr "guix import texlive fontspec\n"
 
 #. type: table
 #: doc/guix.texi:6450
 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 "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:6454
 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 "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:6457
 #, no-wrap
 msgid "guix import texlive --archive=generic ifxetex\n"
-msgstr ""
+msgstr "guix import texlive --archive=generic ifxetex\n"
 
 #. type: item
 #: doc/guix.texi:6459
 #, no-wrap
 msgid "json"
-msgstr ""
+msgstr "json"
 
 #. type: cindex
 #: doc/guix.texi:6460
 #, no-wrap
 msgid "JSON, import"
-msgstr ""
+msgstr "JSON, import"
 
 #. type: table
 #: doc/guix.texi:6465
 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 ""
+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 :"
 
 #. type: example
 #: doc/guix.texi:6478
@@ -11802,16 +12018,27 @@ 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:6484
 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 "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:6487
 msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
-msgstr ""
+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:6500
@@ -11829,269 +12056,280 @@ 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:6504
 msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
-msgstr ""
+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:6507
 #, no-wrap
 msgid "guix import json hello.json\n"
-msgstr ""
+msgstr "guix import json hello.json\n"
 
 #. type: item
 #: doc/guix.texi:6509
 #, no-wrap
 msgid "nix"
-msgstr ""
+msgstr "nix"
 
 #. type: table
 #: doc/guix.texi:6518
 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 "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:6521
 msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
-msgstr ""
+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:6523
 msgid "Usually, you will first need to do:"
-msgstr ""
+msgstr "Normalement, vous devrez d'abord faire :"
 
 #. type: example
 #: doc/guix.texi:6526
 #, no-wrap
 msgid "export NIX_REMOTE=daemon\n"
-msgstr ""
+msgstr "export NIX_REMOTE=daemon\n"
 
 #. type: table
 #: doc/guix.texi:6530
 msgid "so that @command{nix-instantiate} does not try to open the Nix database."
-msgstr ""
+msgstr "pour que @command{nix-instantiate} n'essaye pas d'ouvrir la base de données de Nix."
 
 #. type: table
 #: doc/guix.texi:6534
 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 "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:6537
 #, 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:6539 doc/guix.texi:6540 doc/guix.texi:6796
 #, no-wrap
 msgid "hackage"
-msgstr ""
+msgstr "hackage"
 
 #. type: table
 #: doc/guix.texi:6545
 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 "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:6549
 #, no-wrap
 msgid "--stdin"
-msgstr ""
+msgstr "--stdin"
 
 #. type: itemx
 #: doc/guix.texi:6550
 #, no-wrap
 msgid "-s"
-msgstr ""
+msgstr "-s"
 
 #. type: table
 #: doc/guix.texi:6552
 msgid "Read a Cabal file from standard input."
-msgstr ""
+msgstr "Lit un fichier Cabal depuis l'entrée standard."
 
 #. type: item
 #: doc/guix.texi:6552 doc/guix.texi:6594
 #, no-wrap
 msgid "--no-test-dependencies"
-msgstr ""
+msgstr "--no-test-dependencies"
 
 #. type: itemx
 #: doc/guix.texi:6553 doc/guix.texi:6595
 #, no-wrap
 msgid "-t"
-msgstr ""
+msgstr "-t"
 
 #. type: table
 #: doc/guix.texi:6555 doc/guix.texi:6597
 msgid "Do not include dependencies required only by the test suites."
-msgstr ""
+msgstr "N'inclut pas les dépendances requises uniquement par les suites de tests."
 
 #. type: item
 #: doc/guix.texi:6555
 #, no-wrap
 msgid "--cabal-environment=@var{alist}"
-msgstr ""
+msgstr "--cabal-environment=@var{alist}"
 
 #. type: itemx
 #: doc/guix.texi:6556
 #, no-wrap
 msgid "-e @var{alist}"
-msgstr ""
+msgstr "-e @var{alist}"
 
 #. type: table
 #: doc/guix.texi:6565
 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{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:6570
 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 "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:6573
 #, 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:6577
 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 "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:6580
 #, 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:6582 doc/guix.texi:6583 doc/guix.texi:6798
 #, no-wrap
 msgid "stackage"
-msgstr ""
+msgstr "stackage"
 
 #. type: table
 #: doc/guix.texi:6590
 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 "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:6597
 #, no-wrap
 msgid "--lts-version=@var{version}"
-msgstr ""
+msgstr "--lts-version=@var{version}"
 
 #. type: itemx
 #: doc/guix.texi:6598
 #, no-wrap
 msgid "-r @var{version}"
-msgstr ""
+msgstr "-r @var{version}"
 
 #. type: table
 #: doc/guix.texi:6601
 msgid "@var{version} is the desired LTS release version.  If omitted the latest release is used."
-msgstr ""
+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:6605
 msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
-msgstr ""
+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:6608
 #, 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:6610 doc/guix.texi:6611 doc/guix.texi:6782
 #, no-wrap
 msgid "elpa"
-msgstr ""
+msgstr "elpa"
 
 #. type: table
 #: doc/guix.texi:6614
 msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
-msgstr ""
+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:6618
 #, no-wrap
 msgid "--archive=@var{repo}"
-msgstr ""
+msgstr "--archive=@var{repo}"
 
 #. type: itemx
 #: doc/guix.texi:6619
 #, no-wrap
 msgid "-a @var{repo}"
-msgstr ""
+msgstr "-a @var{repo}"
 
 #. type: table
 #: doc/guix.texi:6623
 msgid "@var{repo} identifies the archive repository from which to retrieve the information.  Currently the supported repositories and their identifiers are:"
-msgstr ""
+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:6627
 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}, qu'on peut choisir avec l'identifiant @code{gnu}.  C'est la valeur par défaut."
 
 #. type: itemize
 #: doc/guix.texi:6633
 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 "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:6637
 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}, qu'on peut sélectionner avec l'identifiant @code{melpa-stable}."
 
 #. type: itemize
 #: doc/guix.texi:6641
 msgid "@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
-msgstr ""
+msgstr "@uref{http://melpa.org/packages, MELPA}, qu'on peut sélectionner avec l'identifiant @code{melpa}."
 
 #. type: table
 #: doc/guix.texi:6648
 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 "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:6650 doc/guix.texi:6651 doc/guix.texi:6800
 #, no-wrap
 msgid "crate"
-msgstr ""
+msgstr "crate"
 
 #. type: table
 #: doc/guix.texi:6654
 msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
-msgstr ""
+msgstr "Importe les métadonnées du répertoire des paquets Rust @uref{https://crates.io, crates.io}."
 
 #. type: Plain text
 #: doc/guix.texi:6659
 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 "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:6661
 #, no-wrap
 msgid "Invoking @command{guix refresh}"
-msgstr ""
+msgstr "Invoquer @command{guix refresh}"
 
 #. type: command{#1}
 #: doc/guix.texi:6663
 #, no-wrap
 msgid "guix refresh"
-msgstr ""
+msgstr "guix refresh"
 
 #. type: Plain text
 #: doc/guix.texi:6668
 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 "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:6673
@@ -12101,11 +12339,14 @@ msgid ""
 "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 serait mis à jour de 0.18.1.1 à 0.18.2.1\n"
+"gnu/packages/glib.scm:77:12: glib serait mis à jour de 2.34.3 à 2.37.0\n"
 
 #. type: Plain text
 #: doc/guix.texi:6677
 msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
-msgstr ""
+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:6682
@@ -12115,16 +12356,19 @@ msgid ""
 "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 : avertissement : aucun gestionnaire de mise à jour pour guile-ssh\n"
+"gnu/packages/guile.scm:136:12 : guile serait mis à jour de 2.0.12 à 2.0.13\n"
 
 #. type: Plain text
 #: doc/guix.texi:6691
 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 ""
+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: Plain text
 #: doc/guix.texi:6696
 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 "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:6703
@@ -12136,225 +12380,230 @@ 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:6715
 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 "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:6717
 msgid "The following options are supported:"
-msgstr ""
+msgstr "Les options suivantes sont supportées :"
 
 #. type: table
 #: doc/guix.texi:6725 doc/guix.texi:7312
 msgid "This is useful to precisely refer to a package, as in this example:"
-msgstr ""
+msgstr "C'est utile pour précisément se référer à un paquet, comme dans cet exemple :"
 
 #. type: example
 #: doc/guix.texi:6728
 #, 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:6732
 msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
-msgstr ""
+msgstr "Cette commande liste les paquets qui dépendent de la libc « finale » (en gros tous les paquets)."
 
 #. type: item
 #: doc/guix.texi:6733
 #, no-wrap
 msgid "--update"
-msgstr ""
+msgstr "--update"
 
 #. type: itemx
 #: doc/guix.texi:6734
 #, no-wrap
 msgid "-u"
-msgstr ""
+msgstr "-u"
 
 #. type: table
 #: doc/guix.texi:6738
 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 "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:6741
 #, 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:6744
 msgid "@xref{Defining Packages}, for more information on package definitions."
-msgstr ""
+msgstr "@xref{Defining Packages}, pour plus d'information sur les définitions des paquets."
 
 #. type: item
 #: doc/guix.texi:6745
 #, no-wrap
 msgid "--select=[@var{subset}]"
-msgstr ""
+msgstr "--select=[@var{subset}]"
 
 #. type: itemx
 #: doc/guix.texi:6746
 #, no-wrap
 msgid "-s @var{subset}"
-msgstr ""
+msgstr "-s @var{subset}"
 
 #. type: table
 #: doc/guix.texi:6749
 msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
-msgstr ""
+msgstr "Choisi tous les paquets dans @var{subset}, entre @code{core} et @code{non-core}."
 
 #. type: table
 #: doc/guix.texi:6756
 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 "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 rest ».  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:6760
 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 "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:6765
 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 "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:6766
 #, no-wrap
 msgid "--type=@var{updater}"
-msgstr ""
+msgstr "--type=@var{updater}"
 
 #. type: itemx
 #: doc/guix.texi:6767
 #, no-wrap
 msgid "-t @var{updater}"
-msgstr ""
+msgstr "-t @var{updater}"
 
 #. type: table
 #: doc/guix.texi:6770
 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 "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:6774
 msgid "the updater for GNU packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets GNU ;"
 
 #. type: item
 #: doc/guix.texi:6774
 #, no-wrap
 msgid "gnome"
-msgstr ""
+msgstr "gnome"
 
 #. type: table
 #: doc/guix.texi:6776
 msgid "the updater for GNOME packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets GNOME ;"
 
 #. type: item
 #: doc/guix.texi:6776
 #, no-wrap
 msgid "kde"
-msgstr ""
+msgstr "kde"
 
 #. type: table
 #: doc/guix.texi:6778
 msgid "the updater for KDE packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets KDE ;"
 
 #. type: item
 #: doc/guix.texi:6778
 #, no-wrap
 msgid "xorg"
-msgstr ""
+msgstr "xorg"
 
 #. type: table
 #: doc/guix.texi:6780
 msgid "the updater for X.org packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets X.org ;"
 
 #. type: item
 #: doc/guix.texi:6780
 #, no-wrap
 msgid "kernel.org"
-msgstr ""
+msgstr "kernel.org"
 
 #. type: table
 #: doc/guix.texi:6782
 msgid "the updater for packages hosted on kernel.org;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets hébergés sur kernel.org ;"
 
 #. type: table
 #: doc/guix.texi:6784
 msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{http://elpa.gnu.org/, ELPA} ;"
 
 #. type: table
 #: doc/guix.texi:6786
 msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://cran.r-project.org/, CRAN} ;"
 
 #. type: item
 #: doc/guix.texi:6786
 #, no-wrap
 msgid "bioconductor"
-msgstr ""
+msgstr "bioconductor"
 
 #. type: table
 #: doc/guix.texi:6788
 msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.bioconductor.org/, Bioconductor} ;"
 
 #. type: table
 #: doc/guix.texi:6790
 msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{http://www.cpan.org/, CPAN} ;"
 
 #. type: table
 #: doc/guix.texi:6792
 msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://pypi.python.org, PyPI} ;"
 
 #. type: table
 #: doc/guix.texi:6794
 msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://rubygems.org, RubyGems} ;"
 
 #. type: item
 #: doc/guix.texi:6794
 #, no-wrap
 msgid "github"
-msgstr ""
+msgstr "github"
 
 #. type: table
 #: doc/guix.texi:6796
 msgid "the updater for @uref{https://github.com, GitHub} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://github.com, GitHub} ;"
 
 #. type: table
 #: doc/guix.texi:6798
 msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://hackage.haskell.org, Hackage} ;"
 
 #. type: table
 #: doc/guix.texi:6800
 msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://www.stackage.org, Stackage} ;"
 
 #. type: table
 #: doc/guix.texi:6802
 msgid "the updater for @uref{https://crates.io, Crates} packages."
-msgstr ""
+msgstr "le gestionnaire de mise à jour pour les paquets @uref{https://crates.io, Crates} ;"
 
 #. type: table
 #: doc/guix.texi:6806
 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 "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:6811
@@ -12364,76 +12613,79 @@ msgid ""
 "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 serait mis à jour de 0.10.0 à 0.11.0\n"
+"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:6817
 msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
-msgstr ""
+msgstr "En plus, on peut passer à @command{guix refresh} un ou plusieurs noms de paquets, comme dans cet exemple :"
 
 #. type: example
 #: doc/guix.texi:6820
 #, 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:6826
 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 "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:6831
 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 "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:6834
 #, no-wrap
 msgid "--list-updaters"
-msgstr ""
+msgstr "--list-updaters"
 
 #. type: itemx
 #: doc/guix.texi:6835
 #, no-wrap
 msgid "-L"
-msgstr ""
+msgstr "-L"
 
 #. type: table
 #: doc/guix.texi:6837
 msgid "List available updaters and exit (see @option{--type} above.)"
-msgstr ""
+msgstr "Liste les gestionnaires de mise à jour et quitte (voir l'option @option{--type} plus haut)."
 
 #. type: table
 #: doc/guix.texi:6840
 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 "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:6841
 #, no-wrap
 msgid "--list-dependent"
-msgstr ""
+msgstr "--list-dependent"
 
 #. type: itemx
 #: doc/guix.texi:6842 doc/guix.texi:7005
 #, no-wrap
 msgid "-l"
-msgstr ""
+msgstr "-l"
 
 #. type: table
 #: doc/guix.texi:6845
 msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
-msgstr ""
+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:6849
 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 "@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:6855
 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 "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:6860
@@ -12443,185 +12695,188 @@ msgid ""
 "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:6864
 msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
-msgstr ""
+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: Plain text
 #: doc/guix.texi:6866
 msgid "The following options can be used to customize GnuPG operation:"
-msgstr ""
+msgstr "Les options suivante peuvent être utilisées pour personnaliser les opérations avec GnuPG :"
 
 #. type: item
 #: doc/guix.texi:6869
 #, no-wrap
 msgid "--gpg=@var{command}"
-msgstr ""
+msgstr "--gpg=@var{commande}"
 
 #. type: table
 #: doc/guix.texi:6872
 msgid "Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for in @code{$PATH}."
-msgstr ""
+msgstr "Utilise @var{commande} comme la commande de GnuPG 2.x.  @var{commande} est recherchée dans @code{PATH}."
 
 #. type: table
 #: doc/guix.texi:6876
 msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
-msgstr ""
+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:6878 doc/guix.texi:14077
 #, no-wrap
 msgid "always"
-msgstr ""
+msgstr "always"
 
 #. type: table
 #: doc/guix.texi:6881
 msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
-msgstr ""
+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:6882 doc/guix.texi:14079
 #, no-wrap
 msgid "never"
-msgstr ""
+msgstr "never"
 
 #. type: table
 #: doc/guix.texi:6884
 msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
-msgstr ""
+msgstr "Ne jamais essayer de télécharger les clefs OpenPGP manquante.  Quitter à la place."
 
 #. type: item
 #: doc/guix.texi:6885
 #, no-wrap
 msgid "interactive"
-msgstr ""
+msgstr "interactive"
 
 #. type: table
 #: doc/guix.texi:6888
 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 "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:6890
 #, no-wrap
 msgid "--key-server=@var{host}"
-msgstr ""
+msgstr "--key-server=@var{host}"
 
 #. type: table
 #: doc/guix.texi:6892
 msgid "Use @var{host} as the OpenPGP key server when importing a public key."
-msgstr ""
+msgstr "Utiliser @var{host} comme serveur de clefs OpenPGP lors de l'importe d'une clef publique."
 
 #. type: Plain text
 #: doc/guix.texi:6905
 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 ""
+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:6908
 #, no-wrap
 msgid "Invoking @command{guix lint}"
-msgstr ""
+msgstr "Invoquer @command{guix lint}"
 
 #. type: command{#1}
 #: doc/guix.texi:6910
 #, no-wrap
 msgid "guix lint"
-msgstr ""
+msgstr "guix lint"
 
 #. type: cindex
 #: doc/guix.texi:6911
 #, no-wrap
 msgid "package, checking for errors"
-msgstr ""
+msgstr "paquets, chercher des erreurs"
 
 #. type: Plain text
 #: doc/guix.texi:6917
 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 "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:6923
 msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
-msgstr ""
+msgstr "Vérifie certaines règles typographiques et stylistiques dans les descriptions et les synopsis."
 
 #. type: item
 #: doc/guix.texi:6924
 #, no-wrap
 msgid "inputs-should-be-native"
-msgstr ""
+msgstr "inputs-should-be-native"
 
 #. type: table
 #: doc/guix.texi:6926
 msgid "Identify inputs that should most likely be native inputs."
-msgstr ""
+msgstr "Identifie les entrées qui devraient sans doute plutôt être des entrées natives."
 
 #. type: itemx
 #: doc/guix.texi:6929
 #, no-wrap
 msgid "mirror-url"
-msgstr ""
+msgstr "mirror-url"
 
 #. type: itemx
 #: doc/guix.texi:6930
 #, no-wrap
 msgid "source-file-name"
-msgstr ""
+msgstr "source-file-name"
 
 #. type: table
 #: doc/guix.texi:6936
 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 ""
+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-checkou », sans avoir déclaré un @code{file-name} (@pxref{origin Reference})."
 
 #. type: item
 #: doc/guix.texi:6937
 #, no-wrap
 msgid "cve"
-msgstr ""
+msgstr "cve"
 
 #. type: cindex
 #: doc/guix.texi:6938 doc/guix.texi:21969
 #, no-wrap
 msgid "security vulnerabilities"
-msgstr ""
+msgstr "vulnérabilités"
 
 #. type: cindex
 #: doc/guix.texi:6939
 #, no-wrap
 msgid "CVE, Common Vulnerabilities and Exposures"
-msgstr ""
+msgstr "CVE, Common Vulnerabilities and Exposures"
 
 #. type: table
 #: doc/guix.texi:6944
 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 "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:6946
 msgid "To view information about a particular vulnerability, visit pages such as:"
-msgstr ""
+msgstr "Pour voir les informations sur une vulnérabilité en particulier, visitez les pages :"
 
 #. type: indicateurl{#1}
 #: doc/guix.texi:6950
 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-ANNÉE-ABCD"
 
 #. type: indicateurl{#1}
 #: doc/guix.texi:6952
 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-ANNÉE-ABCD"
 
 #. type: table
 #: doc/guix.texi:6957
 msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
-msgstr ""
+msgstr "où @code{CVE-ANNÉE-ABCD} est l'identifiant CVE — p.@: ex.@: @code{CVE-2015-7554}."
 
 #. type: table
 #: doc/guix.texi:6962
 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 "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:6970
@@ -12634,11 +12889,17 @@ msgid ""
 "  (properties '((cpe-name . \"grub2\")\n"
 "                (cpe-version . \"2.3\")))\n"
 msgstr ""
+"(package\n"
+"  (name \"grub\")\n"
+"  ;; @dots{}\n"
+"  ;; CPE calls this package \"grub2\".\n"
+"  (properties '((cpe-name . \"grub2\")\n"
+"                (cpe-version . \"2.3\")))\n"
 
 #. type: table
 #: doc/guix.texi:6977
 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 "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:6987
@@ -12653,90 +12914,98 @@ msgid ""
 "                                    \"CVE-2011-1554\"\n"
 "                                    \"CVE-2011-5244\")))))\n"
 msgstr ""
+"(package\n"
+"  (name \"t1lib\")\n"
+"  ;; @dots{}\n"
+"  ;; Ces CVE ne s'appliquent plus et peuvent être ignorée sans problème.\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:6989
 #, no-wrap
 msgid "formatting"
-msgstr ""
+msgstr "formatting"
 
 #. type: table
 #: doc/guix.texi:6992
 msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
-msgstr ""
+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:6998
 #, no-wrap
 msgid "guix lint @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix lint @var{options} @var{package}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:7002
 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 "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:7004
 #, no-wrap
 msgid "--list-checkers"
-msgstr ""
+msgstr "--list-checkers"
 
 #. type: table
 #: doc/guix.texi:7008
 msgid "List and describe all the available checkers that will be run on packages and exit."
-msgstr ""
+msgstr "Liste et décrit tous les vérificateurs disponibles qui seront lancés sur les paquets puis quitte."
 
 #. type: item
 #: doc/guix.texi:7009
 #, no-wrap
 msgid "--checkers"
-msgstr ""
+msgstr "--checkers"
 
 #. type: itemx
 #: doc/guix.texi:7010
 #, no-wrap
 msgid "-c"
-msgstr ""
+msgstr "-c"
 
 #. type: table
 #: doc/guix.texi:7013
 msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
-msgstr ""
+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:7017
 #, no-wrap
 msgid "Invoking @command{guix size}"
-msgstr ""
+msgstr "Invoquer @command{guix size}"
 
 #. type: cindex
 #: doc/guix.texi:7019
 #, no-wrap
 msgid "size"
-msgstr ""
+msgstr "taille"
 
 #. type: cindex
 #: doc/guix.texi:7020
 #, no-wrap
 msgid "package size"
-msgstr ""
+msgstr "paquet, taille"
 
 #. type: command{#1}
 #: doc/guix.texi:7022
 #, no-wrap
 msgid "guix size"
-msgstr ""
+msgstr "guix size"
 
 #. type: Plain text
 #: doc/guix.texi:7029
 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 "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:7034
 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 "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:7047
@@ -12754,32 +13023,43 @@ 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 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:7053
 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 "Les éléments du dépôt listés ici constituent la @dfn{cloture transitive} de Coreutils — c.-à-d.@: Coreutils et toutes ses dépendances, récursivement — comme ce qui serait renvoyé par :"
 
 #. type: example
 #: doc/guix.texi:7056
 #, 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:7064
 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 "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 cloture 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:7070
 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 "Dans cet exemple, on voit que la cloture 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 cloture parce qu'elles sont toujours disponibles sur le système de toute façon)."
 
 #. type: Plain text
 #: doc/guix.texi:7079
 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 "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:7084
@@ -12789,7 +13069,7 @@ msgstr "Lorsque les paquets donnés ne sont @emph{pas} dans le dépôt, @command
 #. type: Plain text
 #: doc/guix.texi:7086
 msgid "You can also specify several package names:"
-msgstr ""
+msgstr "Vous pouvez aussi spécifier plusieurs noms de paquets :"
 
 #. type: example
 #: doc/guix.texi:7096
@@ -12804,251 +13084,259 @@ msgid ""
 "@dots{}\n"
 "total: 102.3 MiB\n"
 msgstr ""
+"$ guix size coreutils grep sed bash\n"
+"store item                               total    self\n"
+"/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%\n"
+"/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%\n"
+"/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%\n"
+"/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%\n"
+"@dots{}\n"
+"total: 102.3 MiB\n"
 
 #. type: Plain text
 #: doc/guix.texi:7102
 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 "Dans cet exemple on voit que la combinaison des quatre paquets prent 102.3@tie{}Mio en tout, ce qui est bien moins que la somme des clotures puisqu'ils ont beaucoup de dépendances en commun."
 
 #. type: Plain text
 #: doc/guix.texi:7104
 msgid "The available options are:"
-msgstr ""
+msgstr "Les options disponibles sont :"
 
 #. type: table
 #: doc/guix.texi:7110
 msgid "Use substitute information from @var{urls}.  @xref{client-substitute-urls, the same option for @code{guix build}}."
-msgstr ""
+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:7111
 #, no-wrap
 msgid "--sort=@var{key}"
-msgstr ""
+msgstr "--sort=@var{clef}"
 
 #. type: table
 #: doc/guix.texi:7113
 msgid "Sort lines according to @var{key}, one of the following options:"
-msgstr ""
+msgstr "Trie les lignes en fonction de la @var{clef}, l'une des optinos suivantes :"
 
 #. type: item
 #: doc/guix.texi:7115
 #, no-wrap
 msgid "self"
-msgstr ""
+msgstr "self"
 
 #. type: table
 #: doc/guix.texi:7117
 msgid "the size of each item (the default);"
-msgstr ""
+msgstr "la taille de chaque élément (par défaut) ;"
 
 #. type: table
 #: doc/guix.texi:7119
 msgid "the total size of the item's closure."
-msgstr ""
+msgstr "la taille totale de la cloture de l'élémente."
 
 #. type: item
 #: doc/guix.texi:7121
 #, no-wrap
 msgid "--map-file=@var{file}"
-msgstr ""
+msgstr "--map-file=@var{fichier} "
 
 #. type: table
 #: doc/guix.texi:7123
 msgid "Write a graphical map of disk usage in PNG format to @var{file}."
-msgstr ""
+msgstr "Écrit un schéma de l'utilisation du disque au format PNG dans @var{fichier}."
 
 #. type: table
 #: doc/guix.texi:7125
 msgid "For the example above, the map looks like this:"
-msgstr ""
+msgstr "Pour l'exemple au-dessus, le schéma ressemble à ceci :"
 
 #. type: table
 #: doc/guix.texi:7128
 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,, schéma de l'utilisation du disque de Coreutils produit par @command{guix size}}"
 
 #. type: table
 #: doc/guix.texi:7133
 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 "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:7137
 msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
-msgstr ""
+msgstr "Considère les paquets pour @var{système} — p.@: ex.@: @code{x86_64-linux}."
 
 #. type: section
 #: doc/guix.texi:7141
 #, no-wrap
 msgid "Invoking @command{guix graph}"
-msgstr ""
+msgstr "Invoque @command{guix graph}"
 
 #. type: cindex
 #: doc/guix.texi:7143
 #, no-wrap
 msgid "DAG"
-msgstr ""
+msgstr "DAG"
 
 #. type: command{#1}
 #: doc/guix.texi:7144
 #, no-wrap
 msgid "guix graph"
-msgstr ""
+msgstr "guix graph"
 
 #. type: Plain text
 #: doc/guix.texi:7158
 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 "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:7161
 #, no-wrap
 msgid "guix graph @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix graph @var{options} @var{paquet}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:7166
 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 "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:7169
 #, 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:7172
 msgid "The output looks like this:"
-msgstr ""
+msgstr "La sortie ressemble à ceci :"
 
 #. type: Plain text
 #: doc/guix.texi:7174
 msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
-msgstr ""
+msgstr "@image{images/coreutils-graph,2in,,Graphe de dépendance de GNU Coreutils}"
 
 #. type: Plain text
 #: doc/guix.texi:7176
 msgid "Nice little graph, no?"
-msgstr ""
+msgstr "Joli petit graphe, non ?"
 
 #. type: Plain text
 #: doc/guix.texi:7182
 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 "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:7188
 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 "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:7189
 #, no-wrap
 msgid "reverse-package"
-msgstr ""
+msgstr "reverse-package"
 
 #. type: table
 #: doc/guix.texi:7191
 msgid "This shows the @emph{reverse} DAG of packages.  For example:"
-msgstr ""
+msgstr "Cela montre le DAG @emph{inversé} des paquets.  Par exemple :"
 
 #. type: example
 #: doc/guix.texi:7194
 #, no-wrap
 msgid "guix graph --type=reverse-package ocaml\n"
-msgstr ""
+msgstr "guix graph --type=reverse-package ocaml\n"
 
 #. type: table
 #: doc/guix.texi:7197
 msgid "... yields the graph of packages that depend on OCaml."
-msgstr ""
+msgstr "… montre le graphe des paquets qui dépendent de OCaml."
 
 #. type: table
 #: doc/guix.texi:7202
 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 "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:7203
 #, no-wrap
 msgid "bag-emerged"
-msgstr ""
+msgstr "bag-emerged"
 
 #. type: table
 #: doc/guix.texi:7205
 msgid "This is the package DAG, @emph{including} implicit inputs."
-msgstr ""
+msgstr "C'est le DAG du paquet, @emph{avec} les entrées implicites."
 
 #. type: table
 #: doc/guix.texi:7207
 msgid "For instance, the following command:"
-msgstr ""
+msgstr "Par exemple, la commande suivante :"
 
 #. type: example
 #: doc/guix.texi:7210
 #, 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:7213
 msgid "... yields this bigger graph:"
-msgstr ""
+msgstr "… montre ce graphe plus gros :"
 
 #. type: table
 #: doc/guix.texi:7215
 msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
-msgstr ""
+msgstr "@image{images/coreutils-bag-graph,,5in,Graphe des dépendances détaillé de GNU Coreutils}"
 
 #. type: table
 #: doc/guix.texi:7218
 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 "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:7222
 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 "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:7223
 #, no-wrap
 msgid "bag"
-msgstr ""
+msgstr "bag"
 
 #. type: table
 #: doc/guix.texi:7226
 msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
-msgstr ""
+msgstr "Comme @code{bag-emerged} mais cette fois inclus toutes les dépendances de bootstrap."
 
 #. type: item
 #: doc/guix.texi:7227
 #, no-wrap
 msgid "bag-with-origins"
-msgstr ""
+msgstr "bag-with-origins"
 
 #. type: table
 #: doc/guix.texi:7229
 msgid "Similar to @code{bag}, but also showing origins and their dependencies."
-msgstr ""
+msgstr "Comme @code{bag}, mais montre aussi les origines et leurs dépendances."
 
 #. type: table
 #: doc/guix.texi:7235
 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 ""
+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:7238
 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 "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:7241
 #, 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:7243
@@ -13059,206 +13347,206 @@ msgstr "module"
 #. type: table
 #: doc/guix.texi:7247
 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 "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:7250
 #, no-wrap
 msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
-msgstr ""
+msgstr "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
 
 #. type: Plain text
 #: doc/guix.texi:7255
 msgid "All the types above correspond to @emph{build-time dependencies}.  The following graph type represents the @emph{run-time dependencies}:"
-msgstr ""
+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:7257
 #, no-wrap
 msgid "references"
-msgstr ""
+msgstr "references"
 
 #. type: table
 #: doc/guix.texi:7260
 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 "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:7263
 msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
-msgstr ""
+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:7267
 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 "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:7270
 #, 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:7272
 #, no-wrap
 msgid "referrers"
-msgstr ""
+msgstr "referrers"
 
 #. type: table
 #: doc/guix.texi:7275
 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 "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:7281
 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 "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:7284
 msgid "It can help determine what is preventing a store item from being garbage collected."
-msgstr ""
+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:7288
 msgid "The available options are the following:"
-msgstr ""
+msgstr "Les options disponibles sont les suivante :"
 
 #. type: item
 #: doc/guix.texi:7290
 #, no-wrap
 msgid "--type=@var{type}"
-msgstr ""
+msgstr "--type=@var{type}"
 
 #. type: itemx
 #: doc/guix.texi:7291 doc/guix.texi:21087
 #, no-wrap
 msgid "-t @var{type}"
-msgstr ""
+msgstr "-t @var{type}"
 
 #. type: table
 #: doc/guix.texi:7294
 msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
-msgstr ""
+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:7295
 #, no-wrap
 msgid "--list-types"
-msgstr ""
+msgstr "--list-types"
 
 #. type: table
 #: doc/guix.texi:7297
 msgid "List the supported graph types."
-msgstr ""
+msgstr "Liste les types de graphes supportés."
 
 #. type: item
 #: doc/guix.texi:7298
 #, no-wrap
 msgid "--backend=@var{backend}"
-msgstr ""
+msgstr "--backend=@var{moteur}"
 
 #. type: itemx
 #: doc/guix.texi:7299
 #, no-wrap
 msgid "-b @var{backend}"
-msgstr ""
+msgstr "-b @var{moteur}"
 
 #. type: table
 #: doc/guix.texi:7301
 msgid "Produce a graph using the selected @var{backend}."
-msgstr ""
+msgstr "Produit un graphe avec le @var{moteur} choisi."
 
 #. type: item
 #: doc/guix.texi:7302
 #, no-wrap
 msgid "--list-backends"
-msgstr ""
+msgstr "--list-backends"
 
 #. type: table
 #: doc/guix.texi:7304
 msgid "List the supported graph backends."
-msgstr ""
+msgstr "Liste les moteurs de graphes supportés."
 
 #. type: table
 #: doc/guix.texi:7306
 msgid "Currently, the available backends are Graphviz and d3.js."
-msgstr ""
+msgstr "Actuellement les moteurs disponibles sont Graphviz et d3.js."
 
 #. type: example
 #: doc/guix.texi:7315
 #, 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: section
 #: doc/guix.texi:7320
 #, no-wrap
 msgid "Invoking @command{guix environment}"
-msgstr ""
+msgstr "Invoquer @command{guix environment}"
 
 #. type: cindex
 #: doc/guix.texi:7322
 #, no-wrap
 msgid "reproducible build environments"
-msgstr ""
+msgstr "environnements de construction reproductibles"
 
 #. type: cindex
 #: doc/guix.texi:7323
 #, no-wrap
 msgid "development environments"
-msgstr ""
+msgstr "environnement de développement"
 
 #. type: command{#1}
 #: doc/guix.texi:7324
 #, no-wrap
 msgid "guix environment"
-msgstr ""
+msgstr "guix environment"
 
 #. type: cindex
 #: doc/guix.texi:7325
 #, no-wrap
 msgid "environment, package build environment"
-msgstr ""
+msgstr "environnement de construction de paquets"
 
 #. type: Plain text
 #: doc/guix.texi:7331
 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 ""
+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:7336
 #, no-wrap
 msgid "guix environment @var{options} @var{package}@dots{}\n"
-msgstr ""
+msgstr "guix environment @var{options} @var{paquet}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:7340
 msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
-msgstr ""
+msgstr "L'exemple suivant crée un nouveau shell préparé pour le développement de GNU@tie{}Guile :"
 
 #. type: example
 #: doc/guix.texi:7343
 #, no-wrap
 msgid "guix environment guile\n"
-msgstr ""
+msgstr "guix environment guile\n"
 
 #. type: Plain text
 #: doc/guix.texi:7360
 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 ""
+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:7361
 #, no-wrap
 msgid "GUIX_ENVIRONMENT"
-msgstr ""
+msgstr "GUIX_ENVIRONMENT"
 
 #. type: Plain text
 #: doc/guix.texi:7367
 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 ""
+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:7373
@@ -13269,338 +13557,342 @@ msgid ""
 "    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:7377
 msgid "... or to browse the profile:"
-msgstr ""
+msgstr "… ou de naviguer dans le profil :"
 
 #. type: example
 #: doc/guix.texi:7380
 #, no-wrap
 msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
-msgstr ""
+msgstr "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
 
 #. type: Plain text
 #: doc/guix.texi:7386
 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 ""
+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:7389
 #, no-wrap
 msgid "guix environment guile emacs\n"
-msgstr ""
+msgstr "guix environment guile emacs\n"
 
 #. type: Plain text
 #: doc/guix.texi:7394
 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 ""
+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:7397
 #, no-wrap
 msgid "guix environment guile -- make -j4\n"
-msgstr ""
+msgstr "guix environment guile -- make -j4\n"
 
 #. type: Plain text
 #: doc/guix.texi:7403
 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 ""
+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:7406
 #, no-wrap
 msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
-msgstr ""
+msgstr "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
 
 #. type: Plain text
 #: doc/guix.texi:7417
 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 ""
+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:7420
 #, no-wrap
 msgid "guix environment guix --ad-hoc git strace\n"
-msgstr ""
+msgstr "guix environment guix --ad-hoc git strace\n"
 
 #. type: Plain text
 #: doc/guix.texi:7429
 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 ""
+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:7432
 #, no-wrap
 msgid "guix environment --ad-hoc --container guile -- guile\n"
-msgstr ""
+msgstr "guix environment --ad-hoc --container guile -- guile\n"
 
 #. type: quotation
 #: doc/guix.texi:7436
 msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
-msgstr ""
+msgstr "L'option @code{--container} requiert Linux-libre 3.19 ou supérieur."
 
 #. type: Plain text
 #: doc/guix.texi:7439
 msgid "The available options are summarized below."
-msgstr ""
+msgstr "Les options disponibles sont résumées ci-dessous."
 
 #. type: cindex
 #: doc/guix.texi:7443
 #, no-wrap
 msgid "persistent environment"
-msgstr ""
+msgstr "environnement persistent"
 
 #. type: cindex
 #: doc/guix.texi:7444
 #, no-wrap
 msgid "garbage collector root, for environments"
-msgstr ""
+msgstr "racine du ramasse-miettes, pour les environnements"
 
 #. type: table
 #: doc/guix.texi:7447
 msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
-msgstr ""
+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:7450
 msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
-msgstr ""
+msgstr "C'est utile si vous souhaitez protéger votre environnement du ramasse-miettes, pour le rendre « persistent »."
 
 #. type: table
 #: doc/guix.texi:7456
 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 ""
+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:7461
 msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
-msgstr ""
+msgstr "Crée un environnement pour le paquet ou la liste de paquets en lesquels s'évalue @var{expr}."
 
 #. type: table
 #: doc/guix.texi:7463
 msgid "For example, running:"
-msgstr ""
+msgstr "Par exemple, lancer :"
 
 #. type: example
 #: doc/guix.texi:7466
 #, no-wrap
 msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
-msgstr ""
+msgstr "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
 
 #. type: table
 #: doc/guix.texi:7470
 msgid "starts a shell with the environment for this specific variant of the PETSc package."
-msgstr ""
+msgstr "démarre un shell avec l'environnement pour cette variante spécifique du paquet PETSc."
 
 #. type: table
 #: doc/guix.texi:7472
 msgid "Running:"
-msgstr ""
+msgstr "Lancer :"
 
 #. type: example
 #: doc/guix.texi:7475
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
-msgstr ""
+msgstr "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
 
 #. type: table
 #: doc/guix.texi:7478
 msgid "starts a shell with all the GuixSD base packages available."
-msgstr ""
+msgstr "démarre un shell où tous les paquets de base de GuixSD sont disponibles."
 
 #. type: table
 #: doc/guix.texi:7481
 msgid "The above commands only use the default output of the given packages.  To select other outputs, two element tuples can be specified:"
-msgstr ""
+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:7484
 #, no-wrap
 msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
-msgstr ""
+msgstr "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
 
 #. type: item
 #: doc/guix.texi:7486
 #, no-wrap
 msgid "--load=@var{file}"
-msgstr ""
+msgstr "--load=@var{fichier}"
 
 #. type: itemx
 #: doc/guix.texi:7487
 #, no-wrap
 msgid "-l @var{file}"
-msgstr ""
+msgstr "-l @var{fichier}"
 
 #. type: table
 #: doc/guix.texi:7490
 msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
-msgstr ""
+msgstr "Crée un environnement pour le paquet ou la liste de paquets en lesquels @var{fichier} s'évalue."
 
 #. type: example
 #: doc/guix.texi:7496
 #, no-wrap
 msgid "@verbatiminclude environment-gdb.scm\n"
-msgstr ""
+msgstr "@verbatiminclude environment-gdb.scm\n"
 
 #. type: table
 #: doc/guix.texi:7502
 msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
-msgstr ""
+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:7506
 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 ""
+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:7507
 #, no-wrap
 msgid "--ad-hoc"
-msgstr ""
+msgstr "--ad-hoc"
 
 #. type: table
 #: doc/guix.texi:7512
 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 ""
+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:7514
 msgid "For instance, the command:"
-msgstr ""
+msgstr "Par exemple la commande :"
 
 #. type: example
 #: doc/guix.texi:7517
 #, no-wrap
 msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
-msgstr ""
+msgstr "guix environment --ad-hoc guile guile-sdl -- guile\n"
 
 #. type: table
 #: doc/guix.texi:7521
 msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
-msgstr ""
+msgstr "lance @command{guile} dans un environnement où Guile et Guile-SDDL sont disponibles."
 
 #. type: table
 #: doc/guix.texi:7526
 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 ""
+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:7532
 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 ""
+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:7533
 #, no-wrap
 msgid "--pure"
-msgstr ""
+msgstr "--pure"
 
 #. type: table
 #: doc/guix.texi:7537
 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 ""
+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:7538
 #, no-wrap
 msgid "--search-paths"
-msgstr ""
+msgstr "--search-paths"
 
 #. type: table
 #: doc/guix.texi:7541
 msgid "Display the environment variable definitions that make up the environment."
-msgstr ""
+msgstr "Affiche les définitions des variables d'environnement qui composent l'environnement."
 
 #. type: table
 #: doc/guix.texi:7545
 msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
-msgstr ""
+msgstr "Essaye de construire pour @var{système} — p.@: ex.@: @code{i686-linux}."
 
 #. type: item
 #: doc/guix.texi:7546
 #, no-wrap
 msgid "--container"
-msgstr ""
+msgstr "--container"
 
 #. type: itemx
 #: doc/guix.texi:7547
 #, no-wrap
 msgid "-C"
-msgstr ""
+msgstr "-C"
 
 #. type: item
 #: doc/guix.texi:7548 doc/guix.texi:8059 doc/guix.texi:21036
 #, no-wrap
 msgid "container"
-msgstr ""
+msgstr "conteneur"
 
 #. type: table
 #: doc/guix.texi:7556
 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 ""
+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/passwod} 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:7557
 #, no-wrap
 msgid "--network"
-msgstr ""
+msgstr "--network"
 
 #. type: itemx
 #: doc/guix.texi:7558
 #, no-wrap
 msgid "-N"
-msgstr ""
+msgstr "-N"
 
 #. type: table
 #: doc/guix.texi:7562
 msgid "For containers, share the network namespace with the host system.  Containers created without this flag only have access to the loopback device."
-msgstr ""
+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:7563
 #, no-wrap
 msgid "--link-profile"
-msgstr ""
+msgstr "--link-profile"
 
 #. type: itemx
 #: doc/guix.texi:7564
 #, no-wrap
 msgid "-P"
-msgstr ""
+msgstr "-P"
 
 #. type: table
 #: doc/guix.texi:7571
 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 ""
+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:7578
 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 ""
+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:7579 doc/guix.texi:7731
 #, no-wrap
 msgid "--user=@var{user}"
-msgstr ""
+msgstr "--user=@var{utilisateur}"
 
 #. type: itemx
 #: doc/guix.texi:7580 doc/guix.texi:7732
 #, no-wrap
 msgid "-u @var{user}"
-msgstr ""
+msgstr "-u @var{utilisateur}"
 
 #. type: table
 #: doc/guix.texi:7586
 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 ""
+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/passwod} 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:7591
 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 ""
+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:7598
@@ -13612,72 +13904,77 @@ msgid ""
 "     --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:7603
 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 ""
+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:7604
 #, no-wrap
 msgid "--expose=@var{source}[=@var{target}]"
-msgstr ""
+msgstr "--expose=@var{source}[=@var{cible}]"
 
 #. type: table
 #: doc/guix.texi:7609
 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 ""
+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:7613
 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 ""
+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:7616
 #, no-wrap
 msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
-msgstr ""
+msgstr "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
 
 #. type: item
 #: doc/guix.texi:7618
 #, no-wrap
 msgid "--share=@var{source}[=@var{target}]"
-msgstr ""
+msgstr "--share=@var{source}[=@var{cible}]"
 
 #. type: table
 #: doc/guix.texi:7623
 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 ""
+msgstr "Pour les conteneurs, partage le système de fichiers @var{soruce} 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:7627
 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 ""
+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:7630
 #, no-wrap
 msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
-msgstr ""
+msgstr "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
 
 #. type: Plain text
 #: doc/guix.texi:7636
 msgid "@command{guix environment} also supports all of the common build options that @command{guix build} supports (@pxref{Common Build Options})."
-msgstr ""
+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:7639
 #, no-wrap
 msgid "Invoking @command{guix publish}"
-msgstr ""
+msgstr "Invoquer @command{guix publish}"
 
 #. type: command{#1}
 #: doc/guix.texi:7641
 #, no-wrap
 msgid "guix publish"
-msgstr ""
+msgstr "guix publish"
 
 #. type: Plain text
 #: doc/guix.texi:7645
@@ -13687,7 +13984,7 @@ msgstr "Le but de @command{guix publish} est de vous permettre de partager facil
 #. type: Plain text
 #: doc/guix.texi:7651
 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 ""
+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}."
 
 #. type: Plain text
 #: doc/guix.texi:7657
@@ -13697,272 +13994,272 @@ msgstr "Pour des raisons de sécurité, chaque substitut est signé, ce qui perm
 #. type: Plain text
 #: doc/guix.texi:7661
 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 ""
+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:7666
 #, no-wrap
 msgid "guix publish @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix publish @var{options}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:7670
 msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
-msgstr ""
+msgstr "Lancer @command{guix publish} sans arguments supplémentaires lancera un serveur HTTP sur le port 8080 :"
 
 #. type: example
 #: doc/guix.texi:7673
 #, no-wrap
 msgid "guix publish\n"
-msgstr ""
+msgstr "guix publish\n"
 
 #. type: Plain text
 #: doc/guix.texi:7677
 msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
-msgstr ""
+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:7680
 #, no-wrap
 msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
-msgstr ""
+msgstr "guix-daemon --substitute-urls=http://example.org:8080\n"
 
 #. type: Plain text
 #: doc/guix.texi:7689
 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 ""
+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:7696
 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 ""
+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 fichie 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:7699
 #, no-wrap
 msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
-msgstr ""
+msgstr "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
 
 #. type: Plain text
 #: doc/guix.texi:7703
 msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
-msgstr ""
+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:7704
 #, no-wrap
 msgid "build logs, publication"
-msgstr ""
+msgstr "journaux de construction, publication"
 
 #. type: Plain text
 #: doc/guix.texi:7706
 msgid "Build logs are available from @code{/log} URLs like:"
-msgstr ""
+msgstr "Les journaux de construction sont disponibles à partir des URL @code{/log} comme ceci :"
 
 #. type: example
 #: doc/guix.texi:7709
 #, no-wrap
 msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
-msgstr ""
+msgstr "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
 
 #. type: Plain text
 #: doc/guix.texi:7719
 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 ""
+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} pace que les navigateurs web les décompressent automatiquement, ce qui n'est pas le cas avec la compression bzip2."
 
 #. type: item
 #: doc/guix.texi:7723
 #, no-wrap
 msgid "--port=@var{port}"
-msgstr ""
+msgstr "--port=@var{port}"
 
 #. type: itemx
 #: doc/guix.texi:7724
 #, no-wrap
 msgid "-p @var{port}"
-msgstr ""
+msgstr "-p @var{port}"
 
 #. type: table
 #: doc/guix.texi:7726
 msgid "Listen for HTTP requests on @var{port}."
-msgstr ""
+msgstr "Écoute les requêtes HTTP sur le @var{port}"
 
 #. type: item
 #: doc/guix.texi:7727 doc/guix.texi:17516
 #, no-wrap
 msgid "--listen=@var{host}"
-msgstr ""
+msgstr "--listen=@var{hôte}"
 
 #. type: table
 #: doc/guix.texi:7730
 msgid "Listen on the network interface for @var{host}.  The default is to accept connections from any interface."
-msgstr ""
+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:7735
 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 ""
+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:7736
 #, no-wrap
 msgid "--compression[=@var{level}]"
-msgstr ""
+msgstr "--compression[=@var{niveau}]"
 
 #. type: itemx
 #: doc/guix.texi:7737
 #, no-wrap
 msgid "-C [@var{level}]"
-msgstr ""
+msgstr "-C [@var{niveau}]"
 
 #. type: table
 #: doc/guix.texi:7742
 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 ""
+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:7751
 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 ""
+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:7752
 #, no-wrap
 msgid "--cache=@var{directory}"
-msgstr ""
+msgstr "--cache=@var{répertoire}"
 
 #. type: itemx
 #: doc/guix.texi:7753
 #, no-wrap
 msgid "-c @var{directory}"
-msgstr ""
+msgstr "-c @var{répertoire}"
 
 #. type: table
 #: doc/guix.texi:7756
 msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
-msgstr ""
+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:7764
 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 ""
+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ésponses, ce qui empêche les clients de savoir la quantité de données à télécharger."
 
 #. type: table
 #: doc/guix.texi:7772
 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 ""
+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:7776
 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 ""
+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:7779
 msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
-msgstr ""
+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:7780
 #, no-wrap
 msgid "--workers=@var{N}"
-msgstr ""
+msgstr "--workers=@var{N}"
 
 #. type: table
 #: doc/guix.texi:7783
 msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
-msgstr ""
+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:7784
 #, no-wrap
 msgid "--ttl=@var{ttl}"
-msgstr ""
+msgstr "--ttl=@var{ttl}"
 
 #. type: table
 #: doc/guix.texi:7788
 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 ""
+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:7793
 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 ""
+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:7797
 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 ""
+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:7798
 #, no-wrap
 msgid "--nar-path=@var{path}"
-msgstr ""
+msgstr "--nar-path=@var{chemin}"
 
 #. type: table
 #: doc/guix.texi:7801
 msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
-msgstr ""
+msgstr "Utilise @var{chemin} comme préfixe des URL de fichier « nar »  (@pxref{Invoking guix archive, normalized archives})."
 
 #. type: table
 #: doc/guix.texi:7805
 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 ""
+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:7806
 #, no-wrap
 msgid "--public-key=@var{file}"
-msgstr ""
+msgstr "--public-key=@var{fichier}"
 
 #. type: itemx
 #: doc/guix.texi:7807
 #, no-wrap
 msgid "--private-key=@var{file}"
-msgstr ""
+msgstr "--private-key=@var{fichier}"
 
 #. type: table
 #: doc/guix.texi:7810
 msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
-msgstr ""
+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:7817
 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 ""
+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:7818
 #, no-wrap
 msgid "--repl[=@var{port}]"
-msgstr ""
+msgstr "--repl[=@var{port}]"
 
 #. type: itemx
 #: doc/guix.texi:7819
 #, no-wrap
 msgid "-r [@var{port}]"
-msgstr ""
+msgstr "-r [@var{port}]"
 
 #. type: table
 #: doc/guix.texi:7823
 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 ""
+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:7829
 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 ""
+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}})."
 
 #. type: Plain text
 #: doc/guix.texi:7832
 msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:”"
-msgstr ""
+msgstr "Si vous avez installé Guix sur une « distro extérieure », suivez ces instructions :"
 
 #. type: itemize
 #: doc/guix.texi:7836
 msgid "If your host distro uses the systemd init system:"
-msgstr ""
+msgstr "Si votre distro hôte utilise le système d'init systemd :"
 
 #. type: example
 #: doc/guix.texi:7841
@@ -13972,6 +14269,9 @@ msgid ""
 "        /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:7849
@@ -13980,40 +14280,42 @@ 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:7853
 msgid "Otherwise, proceed similarly with your distro's init system."
-msgstr ""
+msgstr "Sinon, procédez de manière similaire avec votre système d'init de votre distro."
 
 #. type: section
 #: doc/guix.texi:7856
 #, no-wrap
 msgid "Invoking @command{guix challenge}"
-msgstr ""
+msgstr "Invoquer @command{guix challenge}"
 
 #. type: cindex
 #: doc/guix.texi:7859
 #, no-wrap
 msgid "verifiable builds"
-msgstr ""
+msgstr "constructions vérifiables"
 
 #. type: command{#1}
 #: doc/guix.texi:7860
 #, no-wrap
 msgid "guix challenge"
-msgstr ""
+msgstr "guix challenge"
 
 #. type: cindex
 #: doc/guix.texi:7861
 #, no-wrap
 msgid "challenge"
-msgstr ""
+msgstr "défi"
 
 #. type: Plain text
 #: doc/guix.texi:7866
 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 "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:7874
@@ -14023,12 +14325,12 @@ msgstr "La première question est évidemment importante : avant d'utiliser un
 #. type: Plain text
 #: doc/guix.texi:7883
 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 "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:7885
 msgid "The command output looks like this:"
-msgstr ""
+msgstr "La sortie de la commande ressemble à :"
 
 #. type: smallexample
 #: doc/guix.texi:7902
@@ -14051,6 +14353,22 @@ msgid ""
 "  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"
+"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://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://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://guix.example.org/nar/@dots{}-pius-2.1.1 : 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
+"\n"
 
 #. type: smallexample
 #: doc/guix.texi:7904
@@ -14059,6 +14377,8 @@ msgid ""
 "@dots{}\n"
 "\n"
 msgstr ""
+"@dots{}\n"
+"\n"
 
 #. type: smallexample
 #: doc/guix.texi:7909
@@ -14069,27 +14389,31 @@ msgid ""
 "  - 525 (8.2%) differed\n"
 "  - 1,132 (17.7%) were inconclusive\n"
 msgstr ""
+"6,406 éléments du dépôt ont été analysés :\n"
+"  - 4,749 (74.1%) étaient identiques\n"
+"  - 525 (8.2%) étaient différents\n"
+"  - 1,132 (17.7%) étaient impossibles à évaluer\n"
 
 #. type: Plain text
 #: doc/guix.texi:7917
 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 "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:7918
 #, no-wrap
 msgid "non-determinism, in package builds"
-msgstr ""
+msgstr "non-déterminisme, dans les constructions des paquets"
 
 #. type: Plain text
 #: doc/guix.texi:7929
 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 ""
+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."
 
 #. type: Plain text
 #: doc/guix.texi:7932
 msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
-msgstr ""
+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:7937
@@ -14099,99 +14423,102 @@ msgid ""
 "   | 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"
+"   | 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:7946
 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 ""
+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."
 
 #. type: Plain text
 #: doc/guix.texi:7954
 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 "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:7958
 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 ""
+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 :"
 
 #. type: example
 #: doc/guix.texi:7961
 #, no-wrap
 msgid "$ guix challenge @var{package}\n"
-msgstr ""
+msgstr "$ guix challenge @var{paquet}\n"
 
 #. type: Plain text
 #: doc/guix.texi:7966
 msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
-msgstr ""
+msgstr "où @var{paquet} est une spécification de paquet comme @code{guile@@2.0} ou @code{glibc:debug}."
 
 #. type: example
 #: doc/guix.texi:7971
 #, no-wrap
 msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
-msgstr ""
+msgstr "guix challenge @var{options} [@var{paquets}@dots{}]\n"
 
 #. type: Plain text
 #: doc/guix.texi:7978
 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 "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:7980
 msgid "The one option that matters is:"
-msgstr ""
+msgstr "L'option qui compte est :"
 
 #. type: table
 #: doc/guix.texi:7986
 msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
-msgstr ""
+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:7988
 #, no-wrap
 msgid "-v"
-msgstr ""
+msgstr "-v"
 
 #. type: table
 #: doc/guix.texi:7991
 msgid "Show details about matches (identical contents) in addition to information about mismatches."
-msgstr ""
+msgstr "Montre des détails sur les correspondances (contenu identique) en plus des informations sur différences."
 
 #. type: section
 #: doc/guix.texi:7995
 #, no-wrap
 msgid "Invoking @command{guix copy}"
-msgstr ""
+msgstr "Invoquer @command{guix copy}"
 
 #. type: cindex
 #: doc/guix.texi:7997
 #, no-wrap
 msgid "copy, of store items, over SSH"
-msgstr ""
+msgstr "copier des éléments du dépôt par SSH"
 
 #. type: cindex
 #: doc/guix.texi:7998
 #, no-wrap
 msgid "SSH, copy of store items"
-msgstr ""
+msgstr "SSH, copie d'éléments du dépôt"
 
 #. type: cindex
 #: doc/guix.texi:7999
 #, no-wrap
 msgid "sharing store items across machines"
-msgstr ""
+msgstr "partager des éléments du dépôt entre plusieurs machines"
 
 #. type: cindex
 #: doc/guix.texi:8000
 #, no-wrap
 msgid "transferring store items across machines"
-msgstr ""
+msgstr "transférer des éléments du dépôt entre plusieurs machines"
 
 #. type: Plain text
 #: doc/guix.texi:8007
 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 "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:8011
@@ -14200,157 +14527,159 @@ msgid ""
 "guix copy --to=@var{user}@@@var{host} \\\n"
 "          coreutils `readlink -f ~/.guix-profile`\n"
 msgstr ""
+"guix copy --to=@var{utilisateur}@@@var{hôte} \\\n"
+"          coreutils `readlink -f ~/.guix-profile`\n"
 
 #. type: Plain text
 #: doc/guix.texi:8015
 msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
-msgstr ""
+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:8018
 msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
-msgstr ""
+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:8021
 #, no-wrap
 msgid "guix copy --from=@var{host} libreoffice gimp\n"
-msgstr ""
+msgstr "guix copy --from=@var{hôte} libreoffice gimp\n"
 
 #. type: Plain text
 #: doc/guix.texi:8026
 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 "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:8032
 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 "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:8037
 #, no-wrap
 msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
-msgstr ""
+msgstr "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:8040
 msgid "You must always specify one of the following options:"
-msgstr ""
+msgstr "Vous devez toujours spécifier l'une des options suivantes :"
 
 #. type: item
 #: doc/guix.texi:8042
 #, no-wrap
 msgid "--to=@var{spec}"
-msgstr ""
+msgstr "--to=@var{spec}"
 
 #. type: itemx
 #: doc/guix.texi:8043
 #, no-wrap
 msgid "--from=@var{spec}"
-msgstr ""
+msgstr "--from=@var{spec}"
 
 #. type: table
 #: doc/guix.texi:8047
 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 "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:8051
 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 "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:8055
 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 "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:8058
 #, no-wrap
 msgid "Invoking @command{guix container}"
-msgstr ""
+msgstr "Invoquer @command{guix container}"
 
 #. type: command{#1}
 #: doc/guix.texi:8060
 #, no-wrap
 msgid "guix container"
-msgstr ""
+msgstr "guix container"
 
 #. type: quotation
 #: doc/guix.texi:8064
 msgid "As of version @value{VERSION}, this tool is experimental.  The interface is subject to radical change in the future."
-msgstr ""
+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:8071
 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 "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:8076
 #, no-wrap
 msgid "guix container @var{action} @var{options}@dots{}\n"
-msgstr ""
+msgstr "guix container @var{action} @var{options}@dots{}\n"
 
 #. type: Plain text
 #: doc/guix.texi:8080
 msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
-msgstr ""
+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:8082
 msgid "The following actions are available:"
-msgstr ""
+msgstr "Les actions suivantes sont disponibles :"
 
 #. type: item
 #: doc/guix.texi:8084
 #, no-wrap
 msgid "exec"
-msgstr ""
+msgstr "exec"
 
 #. type: table
 #: doc/guix.texi:8086
 msgid "Execute a command within the context of a running container."
-msgstr ""
+msgstr "Exécute une commande dans le contexte d'un conteneur lancé."
 
 #. type: table
 #: doc/guix.texi:8088
 msgid "The syntax is:"
-msgstr ""
+msgstr "La syntaxe est :"
 
 #. type: example
 #: doc/guix.texi:8091
 #, no-wrap
 msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
-msgstr ""
+msgstr "guix container exec @var{pid} @var{programme} @var{arguments}@dots{}\n"
 
 #. type: table
 #: doc/guix.texi:8097
 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} 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:8101
 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 ""
+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 :"
 
 #. type: example
 #: doc/guix.texi:8104
 #, 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:8108
 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 "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:8112
 #, no-wrap
 msgid "Invoking @command{guix weather}"
-msgstr ""
+msgstr "Invoquer @command{guix weather}"
 
 #. type: Plain text
 #: doc/guix.texi:8121
@@ -14361,30 +14690,30 @@ msgstr "Vous pouvez parfois grogner lorsque les substituts ne sont pas disponibl
 #: doc/guix.texi:8122
 #, no-wrap
 msgid "statistics, for substitutes"
-msgstr ""
+msgstr "statistiques sur les substituts"
 
 #. type: cindex
 #: doc/guix.texi:8123
 #, no-wrap
 msgid "availability of substitutes"
-msgstr ""
+msgstr "disponibilité des substituts"
 
 #. type: cindex
 #: doc/guix.texi:8124
 #, no-wrap
 msgid "substitute availability"
-msgstr ""
+msgstr "substuts, disponibilité"
 
 #. type: cindex
 #: doc/guix.texi:8125
 #, no-wrap
 msgid "weather, substitute availability"
-msgstr ""
+msgstr "weather, disponibilité des substituts"
 
 #. type: Plain text
 #: doc/guix.texi:8127
 msgid "Here's a sample run:"
-msgstr ""
+msgstr "Voici un exemple :"
 
 #. type: example
 #: doc/guix.texi:8139
@@ -14402,6 +14731,17 @@ msgid ""
 "  33.5 requests per second\n"
 "\n"
 msgstr ""
+"$ guix weather --substitute-urls=https://guix.example.org\n"
+"calcul de 5,872 dérivations de paquets pour x86_64-linux…\n"
+"recherche de 6,128 éléments du dépôt sur https://guix.example.org…\n"
+"mise à jour de la liste des substituts depuis 'https://guix.example.org'... 100.0%\n"
+"https://guix.example.org\n"
+"  43.4% substituts disponibles (2,658 sur 6,128)\n"
+"  7,032.5 Mo de fichiers nar (compressés)\n"
+"  19,824.2 Mo sur le disque (décompressés)\n"
+"  0.030 secondes par requêtes (182.9 secondes au total)\n"
+"  33.5 requêtes par seconde\n"
+"\n"
 
 #. type: example
 #: doc/guix.texi:8149
@@ -14417,47 +14757,56 @@ msgid ""
 "      i686-linux: 6.03 builds per hour\n"
 "      aarch64-linux: 6.41 builds per hour\n"
 msgstr ""
+"  9.8% (342 sur 3,470) des éléments manquants sont dans la queue\n"
+"  867 constructions dans la queue\n"
+"      x86_64-linux : 518 (59.7%)\n"
+"      i686-linux : 221 (25.5%)\n"
+"      aarch64-linux : 128 (14.8%)\n"
+"  vitesse de construction : 23.41 constructions par heure\n"
+"      x86_64-linux : 11.16 constructions par heure\n"
+"      i686-linux : 6.03 constructions par heure\n"
+"      aarch64-linux : 6.41 constructions par heure\n"
 
 #. type: cindex
 #: doc/guix.texi:8151
 #, no-wrap
 msgid "continuous integration, statistics"
-msgstr ""
+msgstr "intégration continue, statistiques"
 
 #. type: Plain text
 #: doc/guix.texi:8160
 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 ""
+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."
 
 #. type: Plain text
 #: doc/guix.texi:8166
 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 "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:8169
 msgid "Among other things, it is possible to query specific system types and specific package sets.  The available options are listed below."
-msgstr ""
+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:8175
 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} 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:8181
 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 "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:8187
 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 ""
+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: Plain text
 #: doc/guix.texi:8205
 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 ""
+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:8211
diff --git a/po/guix/da.po b/po/guix/da.po
index 015f0125c2..2d218bd7d3 100644
--- a/po/guix/da.po
+++ b/po/guix/da.po
@@ -18,10 +18,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.15.0-pre1\n"
+"Project-Id-Version: guix 0.15.0\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-04-27 19:13+0200\n"
-"PO-Revision-Date: 2018-06-15 20:58+0200\n"
+"POT-Creation-Date: 2018-06-22 14:08+0200\n"
+"PO-Revision-Date: 2018-08-12 14:10+0200\n"
 "Last-Translator: joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
 "Language: da\n"
@@ -92,7 +92,7 @@ msgstr "tvetydig pakkespecifikation »~a«~%"
 msgid "choosing ~a@~a from ~a~%"
 msgstr "vælger ~a@~a fra ~a~%"
 
-#: gnu/packages.scm:265 guix/scripts/package.scm:278
+#: gnu/packages.scm:265 guix/scripts/package.scm:238
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "pakken »~a« er blevet efterfulgt af »~a«~%"
@@ -117,57 +117,141 @@ msgstr "pakke »~a« mangler uddata »~a«~%"
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: ingen værdi angivet for tjenestetypen »~a«"
 
-#: gnu/services.scm:643
+# "in turn" skal snarere forstås som "videre" eller "igen".  Egentlig
+# kan det dog udelades
+#: 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 ""
+"Byg operativsystemets øverste mappe, som\n"
+"refererer til alt som operativsystemet behøver: dets kerne,\n"
+"initrd, systemprofil, opstartsskript og så videre."
+
+#: 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 ""
+"Fremstil operativsystemets opstartsskript, som er udledt\n"
+"af initrd, når rodfilsystemet er monteret."
+
+#: gnu/services.scm:422
+msgid ""
+"Delete files from @file{/tmp}, @file{/var/run}, and other\n"
+"temporary locations at boot time."
+msgstr ""
+"Slet filer fra @file{/tmp}, @file{/var/run} og andre\n"
+"midlertidige placeringer ved opstartstidspunktet."
+
+#: gnu/services.scm:476
+msgid ""
+"Run @dfn{activation} code at boot time and upon\n"
+"@command{guix system reconfigure} completion."
+msgstr ""
+"Kør @dfn{activation}-kode ved opstartstidspunktet og\n"
+"ved @command{guix system reconfigure}-fuldførelse."
+
+#: gnu/services.scm:527
+msgid ""
+"Add special files to the root file system---e.g.,\n"
+"@file{/usr/bin/env}."
+msgstr ""
+"Tilføj specielle filer til rodfilsystemet---f.eks.,\n"
+"@file{/usr/bin/env}."
+
+#: gnu/services.scm:563
+msgid "Populate the @file{/etc} directory."
+msgstr "Udfyld @file{/etc}-mappen."
+
+#: gnu/services.scm:580
+msgid ""
+"Populate @file{/run/setuid-programs} with the specified\n"
+"executables, making them setuid-root."
+msgstr ""
+"Udfyld @file{/run/setuid-programs} med de angivne\n"
+"kørbare filer, hvilket gør dem setuid-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 ""
+"Dette er @dfn{system profile}, tilgængelig som\n"
+"@file{/run/current-system/profile}. Den indeholder pakker som systemadministratoren\n"
+"ønsker skal være globalt tilgængelige for alle systembrugere."
+
+#: 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 ""
+"Gør ``firmware''-filer klar til indlæsning for operativsystemkernen.\n"
+"Firmware kan så indlæses til nogle af maskinens enheder, såsom\n"
+"Wifi-kort."
+
+#: gnu/services.scm:651
+msgid ""
+"Register garbage-collector roots---i.e., store items that\n"
+"will not be reclaimed by the garbage collector."
+msgstr ""
+"Registrer garbage-collector-rødder---dvs. lagr elementer som\n"
+"ikke vil blive regenereret af affaldsindsamleren."
+
+#: gnu/services.scm:676
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "intet mål af typen »~a« for tjeneste ~a"
 
-#: gnu/services.scm:669 gnu/services.scm:762
+#: gnu/services.scm:702 gnu/services.scm:795
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "mere end en måltjeneste af typen »~a«"
 
-#: gnu/services.scm:752
+#: gnu/services.scm:785
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "tjenste af typen »~a« blev ikke fundet"
 
-#: gnu/system.scm:311
+#: gnu/system.scm:320
 #, scheme-format
-msgid "unrecognized boot parameters for '~a'~%"
-msgstr "ikke genkendte opstartsparametre for »~a«~%"
+msgid "unrecognized boot parameters at '~a'~%"
+msgstr "ikke genkendte opstartsparametre ved »~a«~%"
 
-#: gnu/system.scm:712
+#: gnu/system.scm:731
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "brug af en streng for filen »~a« er forældet; brug »plain-file« i stedet~%"
 
-#: gnu/system.scm:728
+#: gnu/system.scm:747
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "brug af en unik værdi for »~a« er forældet; brug »plain-file« i stedet~%"
 
-#: gnu/system.scm:875
+#: gnu/system.scm:892
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: ugyldigt navn for regionsindstillinger"
 
-#: gnu/services/shepherd.scm:177
+#: gnu/services/shepherd.scm:175
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "tjenesten »~a« tilbudt mere end en gang"
 
-#: gnu/services/shepherd.scm:192
+#: gnu/services/shepherd.scm:190
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "tjenesten »~a« kræver »~a«, som ikke tilbydes af nogen tjeneste"
 
-#: gnu/system/mapped-devices.scm:136
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "du kan få brug for disse moduler i initrd for ~a:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:140
+#: gnu/system/mapped-devices.scm:146
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -192,17 +276,17 @@ msgstr ""
 "                           %base-initrd-modules)))\n"
 "@end example\n"
 
-#: gnu/system/mapped-devices.scm:216
+#: gnu/system/mapped-devices.scm:222
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "ingen LUKS-partition med UUID »~a«"
 
-#: gnu/system/shadow.scm:242
+#: gnu/system/shadow.scm:245
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
 msgstr "supplerende gruppe »~a« for bruger »~a« er ikke erklæret"
 
-#: gnu/system/shadow.scm:252
+#: gnu/system/shadow.scm:255
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "primær gruppe »~a« for brugeren »~a« er ikke erklæret"
@@ -213,7 +297,7 @@ msgid "invalid argument: ~a~%"
 msgstr "ugyldigt argument: ~a~%"
 
 #: guix/scripts.scm:84 guix/scripts/download.scm:135
-#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:77
+#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:85
 #: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81
 #, scheme-format
 msgid "~A: unrecognized option~%"
@@ -465,7 +549,7 @@ msgstr ""
 "      --sources[=TYPE]   kompileringskildederivater; TYPE kan valgfrit være\n"
 "                         »package«, »all« (standard) eller »transitive«"
 
-#: guix/scripts/build.scm:517 guix/scripts/pack.scm:357
+#: guix/scripts/build.scm:517 guix/scripts/pack.scm:646
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -473,7 +557,7 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTEM    forsøger at kompilere for SYSTEM--f.eks. »i686-linux«"
 
-#: guix/scripts/build.scm:519 guix/scripts/pack.scm:359
+#: guix/scripts/build.scm:519 guix/scripts/pack.scm:648
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -533,14 +617,14 @@ msgstr ""
 "      --log-file         returner logfilnavnen for de givne derivater"
 
 #: guix/scripts/build.scm:539 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:435 guix/scripts/gc.scm:76
+#: guix/scripts/package.scm:395 guix/scripts/gc.scm:76
 #: guix/scripts/hash.scm:59 guix/scripts/import.scm:92
-#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:111
-#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:970
-#: guix/scripts/lint.scm:1122 guix/scripts/publish.scm:94
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
+#: guix/scripts/substitute.scm:879 guix/scripts/system.scm:993
+#: guix/scripts/lint.scm:1107 guix/scripts/publish.scm:94
 #: guix/scripts/edit.scm:44 guix/scripts/size.scm:243
 #: guix/scripts/graph.scm:466 guix/scripts/challenge.scm:241
-#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:372
+#: guix/scripts/copy.scm:122 guix/scripts/pack.scm:661
 #: guix/scripts/weather.scm:258 guix/scripts/container.scm:33
 #: guix/scripts/container/exec.scm:43
 msgid ""
@@ -551,14 +635,14 @@ msgstr ""
 "  -h, --help             vis denne hjælpetekst og afslut"
 
 #: guix/scripts/build.scm:541 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:437 guix/scripts/gc.scm:78
+#: guix/scripts/package.scm:397 guix/scripts/gc.scm:78
 #: guix/scripts/hash.scm:61 guix/scripts/import.scm:94
-#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:113
-#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:972
-#: guix/scripts/lint.scm:1126 guix/scripts/publish.scm:96
+#: guix/scripts/import/cran.scm:49 guix/scripts/pull.scm:122
+#: guix/scripts/substitute.scm:881 guix/scripts/system.scm:995
+#: guix/scripts/lint.scm:1111 guix/scripts/publish.scm:96
 #: guix/scripts/edit.scm:46 guix/scripts/size.scm:245
 #: guix/scripts/graph.scm:468 guix/scripts/challenge.scm:243
-#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:374
+#: guix/scripts/copy.scm:124 guix/scripts/pack.scm:663
 #: guix/scripts/weather.scm:260 guix/scripts/container.scm:35
 #: guix/scripts/container/exec.scm:45
 msgid ""
@@ -582,12 +666,12 @@ msgstr ""
 msgid "~s: not something we can build~%"
 msgstr "~s: ikke noget vi kan kompilere~%"
 
-#: guix/scripts/build.scm:675
+#: guix/scripts/build.scm:679
 #, scheme-format
 msgid "~a: warning: package '~a' has no source~%"
 msgstr "~a: advarsel: pakken »~a« har ingen kilde~%"
 
-#: guix/scripts/build.scm:709
+#: guix/scripts/build.scm:713
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "ingen kompileringslog for »~a«~%"
@@ -644,7 +728,7 @@ msgstr ""
 msgid "unsupported hash format: ~a~%"
 msgstr "ikke understøttet hash-format: ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:924
+#: guix/scripts/download.scm:138 guix/scripts/package.scm:884
 #: guix/scripts/publish.scm:883
 #, scheme-format
 msgid "~A: extraneous argument~%"
@@ -665,70 +749,70 @@ msgstr "~a: kunne ikke fortolke URI~%"
 msgid "~a: download failed~%"
 msgstr "~a: overførsel mislykkede~%"
 
-#: guix/scripts/package.scm:112
+#: guix/scripts/package.scm:72
 #, scheme-format
 msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
 msgstr "Prøv »info '(guix) Invoking guix package'« for yderligere information.~%"
 
-#: guix/scripts/package.scm:134
+#: guix/scripts/package.scm:94
 #, scheme-format
 msgid "error: while creating directory `~a': ~a~%"
 msgstr "fejl: under oprettelse af mappe »~a«: ~a~%"
 
-#: guix/scripts/package.scm:138
+#: guix/scripts/package.scm:98
 #, scheme-format
 msgid "Please create the `~a' directory, with you as the owner.~%"
 msgstr "Opret venligst mappen »~a«, med dig som ejer.~%"
 
-#: guix/scripts/package.scm:145
+#: guix/scripts/package.scm:105
 #, scheme-format
 msgid "error: directory `~a' is not owned by you~%"
 msgstr "fejl: mappen »~a« er ikke ejet af dig~%"
 
-#: guix/scripts/package.scm:148
+#: guix/scripts/package.scm:108
 #, scheme-format
 msgid "Please change the owner of `~a' to user ~s.~%"
 msgstr "Ændr venligst ejeren af »~a« til brugeren ~s.~%"
 
-#: guix/scripts/package.scm:183
+#: guix/scripts/package.scm:143
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "fjerner ikke generation ~a, som er nuværende~%"
 
-#: guix/scripts/package.scm:190
+#: guix/scripts/package.scm:150
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "ingen matchende generation~%"
 
-#: guix/scripts/package.scm:193 guix/scripts/package.scm:730
-#: guix/scripts/system.scm:573
+#: guix/scripts/package.scm:153 guix/scripts/package.scm:690
+#: guix/scripts/system.scm:593
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "ugyldig syntaks: ~a~%"
 
-#: guix/scripts/package.scm:222
+#: guix/scripts/package.scm:182
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "intet at udføre~%"
 
-#: guix/scripts/package.scm:236
+#: guix/scripts/package.scm:196
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a pakke i profil~%"
 msgstr[1] "~a pakker i profil~%"
 
-#: guix/scripts/package.scm:320
+#: guix/scripts/package.scm:280
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "pakken »~a« findes ikke længere~%"
 
-#: guix/scripts/package.scm:358
+#: guix/scripts/package.scm:318
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
 msgstr "De følgende miljøvariabeldefinitioner kan være krævet:~%"
 
-#: guix/scripts/package.scm:374
+#: guix/scripts/package.scm:334
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -736,7 +820,7 @@ msgstr ""
 "Brug: guix-pakke [TILVALG] ... \n"
 "Installer, fjern eller opgrader pakker i en enkel transaktion.\n"
 
-#: guix/scripts/package.scm:376
+#: guix/scripts/package.scm:336
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -746,7 +830,7 @@ msgstr ""
 "  -i, --install PAKKE ...\n"
 "                         installer PAKKER"
 
-#: guix/scripts/package.scm:379
+#: guix/scripts/package.scm:339
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -756,7 +840,7 @@ msgstr ""
 "  -e, --install-from-expression=UDTRYK\n"
 "                         installer pakken UDTRYK evaluerer til"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -768,7 +852,7 @@ msgstr ""
 "                         installer pakken som koden i FIL evaluerer\n"
 "                         til"
 
-#: guix/scripts/package.scm:386
+#: guix/scripts/package.scm:346
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -778,7 +862,7 @@ msgstr ""
 "  -r, --remove PAKKE ...\n"
 "                         fjern PAKKER"
 
-#: guix/scripts/package.scm:389
+#: guix/scripts/package.scm:349
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -788,7 +872,7 @@ msgstr ""
 "                         opgrader alle de installerede pakker der matcher\n"
 "                         REGUDTRYK"
 
-#: guix/scripts/package.scm:391
+#: guix/scripts/package.scm:351
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -798,7 +882,7 @@ msgstr ""
 "  -m, --manifest=FIL     opret en ny profiloprettelse med manifestet fra\n"
 "                         FIL"
 
-#: guix/scripts/package.scm:394
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -806,7 +890,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGUDTRYK] opgrader ikke pakker der matcher REGUDTRYK"
 
-#: guix/scripts/package.scm:396
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -814,7 +898,7 @@ msgstr ""
 "\n"
 "      --roll-back        rul tilbage til den forrige generation"
 
-#: guix/scripts/package.scm:398
+#: guix/scripts/package.scm:358
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -824,7 +908,7 @@ msgstr ""
 "      --search-paths[=KIND]\n"
 "                         vis krævede miljøvariabeldefinitioner"
 
-#: guix/scripts/package.scm:401
+#: guix/scripts/package.scm:361 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -834,7 +918,7 @@ msgstr ""
 "  -l, --list-generations[=MØNSTER]\n"
 "                         vis generationer der matcher MØNSTER"
 
-#: guix/scripts/package.scm:404
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -844,7 +928,7 @@ msgstr ""
 "  -d, --delete-generations[=MØNSTER]\n"
 "                         slet generationer der matcher MØNSTER"
 
-#: guix/scripts/package.scm:407
+#: guix/scripts/package.scm:367
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -854,7 +938,7 @@ msgstr ""
 "  -S, --switch-generation=MØNSTER\n"
 "                         skift til et generationsmatchende MØNSTER"
 
-#: guix/scripts/package.scm:410
+#: guix/scripts/package.scm:370
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -862,7 +946,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   brug PROFIL i stedet for brugerens standardprofil"
 
-#: guix/scripts/package.scm:413
+#: guix/scripts/package.scm:373
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -870,7 +954,7 @@ msgstr ""
 "\n"
 "      --allow-collisions opfat ikke kollisioner i profilen som en fejl"
 
-#: guix/scripts/package.scm:415
+#: guix/scripts/package.scm:375
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -878,7 +962,7 @@ msgstr ""
 "\n"
 "      --bootstrap        brug bootstrap Guile til at kompilere profilen"
 
-#: guix/scripts/package.scm:417 guix/scripts/pull.scm:99
+#: guix/scripts/package.scm:377 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "      --verbose          produce verbose output"
@@ -886,7 +970,7 @@ msgstr ""
 "\n"
 "      --verbose          lav uddybende uddata"
 
-#: guix/scripts/package.scm:420
+#: guix/scripts/package.scm:380
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -894,7 +978,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGUDTRYK søg i synopsis og beskrivelse via REGUDTRYK"
 
-#: guix/scripts/package.scm:422
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -904,7 +988,7 @@ msgstr ""
 "  -I, --list-installed[=REGUDTRYK]\n"
 "                         vis installerede pakker der matcher REGUDTRYK"
 
-#: guix/scripts/package.scm:425
+#: guix/scripts/package.scm:385
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -914,7 +998,7 @@ msgstr ""
 "  -A, --list-available[=REGUDTRYK]\n"
 "                         vis tilgængelige pakker der matcher REGUDTRYK"
 
-#: guix/scripts/package.scm:428
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -922,32 +1006,32 @@ msgstr ""
 "\n"
 "      --show=PACKAGE     vis detaljer om PAKKE"
 
-#: guix/scripts/package.scm:480
+#: guix/scripts/package.scm:440
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "opgradering af regulært udtryk »~a« ligner et tilvalg for kommandolinjen~%"
 
-#: guix/scripts/package.scm:483
+#: guix/scripts/package.scm:443
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "er dette med vilje?~%"
 
-#: guix/scripts/package.scm:528
+#: guix/scripts/package.scm:488
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: ikke understøttet type af søgesti%"
 
-#: guix/scripts/package.scm:829
+#: guix/scripts/package.scm:789
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "kan ikke skifte til generation »~a«~%"
 
-#: guix/scripts/package.scm:846
+#: guix/scripts/package.scm:806
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
 msgstr "vil installere nyt manifest fra »~a« med ~d poster~%"
 
-#: guix/scripts/package.scm:848
+#: guix/scripts/package.scm:808
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
 msgstr "installerer nyt manifest fra »~a« med ~d poster~%"
@@ -1127,13 +1211,13 @@ msgstr ""
 "\n"
 "  -r, --recursive        beregn hashen på FIL rekursivt"
 
-#: guix/scripts/hash.scm:150 guix/ui.scm:346 guix/ui.scm:656 guix/ui.scm:709
+#: guix/scripts/hash.scm:150 guix/ui.scm:365 guix/ui.scm:706 guix/ui.scm:759
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1138
-#: guix/scripts/system.scm:1147 guix/scripts/system.scm:1154
+#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1161
+#: guix/scripts/system.scm:1170 guix/scripts/system.scm:1177
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "forkert antal argumenter~%"
@@ -1181,22 +1265,22 @@ msgstr ""
 "\n"
 "  -a, --archive=ARKIV    angiv arkivet"
 
-#: guix/scripts/import/cran.scm:108
+#: guix/scripts/import/cran.scm:110
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
 msgstr "kunne ikke hente beskrivelse for pakke »~a«:~%"
 
-#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:95
+#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:113
 #, scheme-format
 msgid "too few arguments~%"
 msgstr "for få argumenter~%"
 
-#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:97
+#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:115
 #, scheme-format
 msgid "too many arguments~%"
 msgstr "for mange argumenter~%"
 
-#: 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"
@@ -1204,7 +1288,7 @@ msgstr ""
 "Brug: guix import elpa PAKKENAVN\n"
 "Importer den seneste pakke navngivet PAKKENAVN fra et ELPA-arkiv.\n"
 
-#: guix/scripts/import/elpa.scm:43
+#: guix/scripts/import/elpa.scm:46
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
@@ -1212,7 +1296,7 @@ msgstr ""
 "\n"
 "  -a, --archive=ARKIV            angiv arkivet"
 
-#: guix/scripts/import/elpa.scm:45
+#: guix/scripts/import/elpa.scm:48
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
@@ -1220,7 +1304,15 @@ msgstr ""
 "\n"
 "  -h, --help                     vis denne hjælpetekst og afslut"
 
-#: guix/scripts/import/elpa.scm:47
+#: 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                opret pakkeudtryk for alle Emacs-pakker som endnu ikke er i Guix"
+
+#: guix/scripts/import/elpa.scm:52
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
@@ -1228,12 +1320,12 @@ msgstr ""
 "\n"
 "  -V, --version                  vis versioninformation og afslut"
 
-#: guix/scripts/import/elpa.scm:92
+#: guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr "kunne ikke hente pakken »~a«:~%"
 
-#: guix/scripts/pull.scm:60
+#: guix/scripts/pull.scm:66
 #, scheme-format
 msgid ""
 "Guile-Git is missing but it is now required by 'guix pull'.\n"
@@ -1252,7 +1344,7 @@ msgstr ""
 "  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
 "\n"
 
-#: guix/scripts/pull.scm:97
+#: guix/scripts/pull.scm:103
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -1260,7 +1352,7 @@ msgstr ""
 "Brug: guix pull [TILVALG]...\n"
 "Hent og udrul den seneste version af Guix.\n"
 
-#: guix/scripts/pull.scm:101
+#: guix/scripts/pull.scm:107
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -1268,7 +1360,7 @@ msgstr ""
 "\n"
 "      --url=URL          hent fra Git-arkivet på URL (ADRESSE)"
 
-#: guix/scripts/pull.scm:103
+#: guix/scripts/pull.scm:109
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -1276,7 +1368,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    hent den angivne COMMIT (INDSENDELSE)"
 
-#: guix/scripts/pull.scm:105
+#: guix/scripts/pull.scm:111
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -1284,7 +1376,7 @@ msgstr ""
 "\n"
 "      --branch=BRANCH    hent toppen af den angivne BRANCH (GREN)"
 
-#: guix/scripts/pull.scm:107
+#: guix/scripts/pull.scm:116
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -1292,46 +1384,47 @@ msgstr ""
 "\n"
 "      --bootstrap        brug bootstrap Guile til at kompilere den nye Guix"
 
-#: guix/scripts/pull.scm:193
-msgid "Guix already up to date\n"
-msgstr "Guix er allerede opdateret\n"
-
-#: guix/scripts/pull.scm:198
-#, scheme-format
-msgid "updated ~a successfully deployed under `~a'~%"
-msgstr "opdaterede ~a der med succes blev udrullet undet »~a«~%"
-
-#: guix/scripts/pull.scm:201
-#, scheme-format
-msgid "failed to update Guix, check the build log~%"
-msgstr "kunne ikke opdatere Guix; kontroller kompileringsloggen~%"
-
-#: guix/scripts/pull.scm:217
+#: guix/scripts/pull.scm:263
 #, scheme-format
 msgid "cannot enforce use of the Let's Encrypt certificates~%"
 msgstr "kan ikke gennemtvinge brugen af Let's Encrypt-certifikater~%"
 
-#: guix/scripts/pull.scm:219
+#: guix/scripts/pull.scm:265
 #, scheme-format
 msgid "please upgrade Guile-Git~%"
 msgstr "opgrader venligst Guile-Git~%"
 
-#: guix/scripts/pull.scm:227
+#: guix/scripts/pull.scm:273
 #, scheme-format
 msgid "Git error ~a~%"
 msgstr "Git-fejl: ~a~%"
 
-#: guix/scripts/pull.scm:229
+#: guix/scripts/pull.scm:275
 #, scheme-format
 msgid "Git error: ~a~%"
 msgstr "Git-fejl: ~a~%"
 
-#: guix/scripts/pull.scm:263
+#: guix/scripts/pull.scm:302
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr "    arkiv-URL: ~a~%"
+
+#: guix/scripts/pull.scm:304
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr "    gren: ~a~%"
+
+#: guix/scripts/pull.scm:305
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr "    commit: ~a~%"
+
+#: guix/scripts/pull.scm:373
 #, scheme-format
 msgid "Updating from Git repository at '~a'...~%"
 msgstr "Opdaterer fra Git-arkiv på »~a«...~%"
 
-#: guix/scripts/pull.scm:272
+#: guix/scripts/pull.scm:383
 #, scheme-format
 msgid "Building from Git commit ~a...~%"
 msgstr "Kompilerer fra Git commit ~a...~%"
@@ -1418,8 +1511,8 @@ msgstr "»~a« nævner ikke et lagerelement~%"
 
 #: guix/scripts/substitute.scm:619
 #, scheme-format
-msgid "updating list of substitutes from '~a'... ~5,1f%"
-msgstr "opdaterer liste af substitutter fra »~a«... ~5,1f%"
+msgid "updating substitutes from '~a'... ~5,1f%"
+msgstr "opdaterer substitutter fra »~a«... ~5,1f%"
 
 #: guix/scripts/substitute.scm:683
 #, scheme-format
@@ -1529,172 +1622,178 @@ msgstr ""
 msgid "wrong arguments"
 msgstr "forkerte argumenter"
 
-#: guix/scripts/system.scm:141
+#: guix/scripts/system.scm:143
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "kunne ikke registrere »~a« under »~a«~%"
 
-#: guix/scripts/system.scm:152
+#: guix/scripts/system.scm:154
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "kopierer til »~a«..."
 
-#: guix/scripts/system.scm:187
+#: guix/scripts/system.scm:189
 #, scheme-format
 msgid "failed to install bootloader ~a~%"
 msgstr "kunne ikke installere opstartsindlæseren ~a~%"
 
-#: guix/scripts/system.scm:207
+#: guix/scripts/system.scm:209
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "initialiserer det nuværende root-filsystem~%"
 
-#: guix/scripts/system.scm:221
+#: guix/scripts/system.scm:223
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "kører ikke som »root«, så ejerskabet af »~a« kan være forkert!~%"
 
-#: guix/scripts/system.scm:266
+#: guix/scripts/system.scm:268
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "under kommunikation med shepherd: ~a~%"
 
-#: guix/scripts/system.scm:273
+#: guix/scripts/system.scm:275
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "tjensten »~a« blev ikke fundet~%"
 
-#: guix/scripts/system.scm:276
+#: guix/scripts/system.scm:278
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "tjenesten »~a« har ikke en handling »~a«~%"
 
-#: guix/scripts/system.scm:280
+#: guix/scripts/system.scm:282
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "undtagelse fanget under kørsel af »~a« på tjenesten »~a«:~%"
 
-#: guix/scripts/system.scm:288
+#: guix/scripts/system.scm:290
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "noget gik galt: ~s~%"
 
-#: guix/scripts/system.scm:291
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "shepherd-fejl~%"
 
-#: guix/scripts/system.scm:308
+#: guix/scripts/system.scm:310
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
 msgstr "kunne ikke indhente liste over shepherd-tjenester~%"
 
-#: guix/scripts/system.scm:328
+#: guix/scripts/system.scm:330
 #, scheme-format
 msgid "unloading service '~a'...~%"
 msgstr "afslutter tjeneste »~a« ...~%"
 
-#: guix/scripts/system.scm:336
+#: guix/scripts/system.scm:338
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
 msgstr "indlæser nye tjenester:~{ ~a~}...~%"
 
-#: guix/scripts/system.scm:362
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "activating system...~%"
 msgstr "aktiverer system ...~%"
 
-#: guix/scripts/system.scm:438
+#: guix/scripts/system.scm:442
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "kan ikke skifte til systemoprettelse »~a«~%"
 
-#: guix/scripts/system.scm:509
+#: guix/scripts/system.scm:513
 msgid "the DAG of services"
 msgstr "DAGen for tjenester"
 
-#: guix/scripts/system.scm:522
+#: guix/scripts/system.scm:526
 msgid "the dependency graph of shepherd services"
 msgstr "afhængighedsgrafen for shepherd-tjenester"
 
-#: guix/scripts/system.scm:546
+#: guix/scripts/system.scm:550
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  filnavn: ~a~%"
 
-#: guix/scripts/system.scm:547
+#: guix/scripts/system.scm:551
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  kanonisk filnavn: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:549
+#: guix/scripts/system.scm:553
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  etikelt: ~a~%"
 
-#: guix/scripts/system.scm:550
+#: guix/scripts/system.scm:554
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  opstartsindlæser: ~a~%"
 
-#: guix/scripts/system.scm:551
+#. 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:564
 #, scheme-format
-msgid "  root device: ~a~%"
-msgstr "  root-enhed: ~a~%"
+msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
+msgstr "  root-enhed: ~[UUID: ~a~;etiket: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:555
+#: guix/scripts/system.scm:575
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  kerne: ~a~%"
 
-#: guix/scripts/system.scm:626
+#: guix/scripts/system.scm:646
 #, scheme-format
 msgid "~a: error: device '~a' not found: ~a~%"
 msgstr "~a: fejl: enheden »~a« blev ikke fundet: ~a~%"
 
-#: guix/scripts/system.scm:630
+#: guix/scripts/system.scm:650
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
-"label, you need to add @code{(title 'label)} to your @code{file-system}\n"
-"definition."
+"label, write @code{(file-system-label ~s)} in your @code{device} field."
 msgstr ""
 "Hvis »~a« er en filsystemetiket,\n"
-"skal du tilføje @code{(title 'label)} til din @code{file-system}-\n"
-"definition."
+"skal du skrive @code{(file-system-label ~s)} i dit @code{device}-felt."
 
-#: guix/scripts/system.scm:637
+#: guix/scripts/system.scm:658
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
 msgstr "~a: fejl: filsystem med etiketten »~a« blev ikke fundet~%"
 
-#: guix/scripts/system.scm:643
+#: guix/scripts/system.scm:663
 #, scheme-format
 msgid "~a: error: file system with UUID '~a' not found~%"
 msgstr "~a: fejl: filsystem med UUID »~a« blev ikke fundet~%"
 
-#: guix/scripts/system.scm:741
+#: guix/scripts/system.scm:764
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
 msgstr "~a blev ikke fundet: »guix pull« blev aldrig kørt~%"
 
-#: guix/scripts/system.scm:742
+#: guix/scripts/system.scm:765
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Tag i betragtning at køre »guix pull« før »reconfigure«.~%"
 
-#: guix/scripts/system.scm:743
+#: guix/scripts/system.scm:766
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Hvis dette ikke gøres, kan dit system blive nedgraderet!~%"
 
-#: guix/scripts/system.scm:860
+#: guix/scripts/system.scm:883
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "initialiserer operativsystem under »~a«...~%"
 
-#: guix/scripts/system.scm:905
+#: guix/scripts/system.scm:928
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -1704,67 +1803,67 @@ msgstr ""
 "Kompiler operativsystemet erklæret i FIL jævnfør HANDLING.\n"
 "Nogle HANDLINGER understøtter yderligere ARGUMENTER.\n"
 
-#: guix/scripts/system.scm:909 guix/scripts/container.scm:28
+#: guix/scripts/system.scm:932 guix/scripts/container.scm:28
 msgid "The valid values for ACTION are:\n"
 msgstr "De gyldige værdier for HANDLING er:\n"
 
-#: guix/scripts/system.scm:911
+#: guix/scripts/system.scm:934
 msgid "   search           search for existing service types\n"
 msgstr "   search           søg efter eksisterende tjenestetyper\n"
 
-#: guix/scripts/system.scm:913
+#: guix/scripts/system.scm:936
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      skift til en ny operativsystemkonfiguration\n"
 
-#: guix/scripts/system.scm:915
+#: guix/scripts/system.scm:938
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        skift til den forrige operativsystemkonfiguration\n"
 
-#: guix/scripts/system.scm:917
+#: guix/scripts/system.scm:940
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation skift til en eksisterende operativsystemkonfiguration\n"
 
-#: guix/scripts/system.scm:919
+#: guix/scripts/system.scm:942
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations viser systemoprettelserne\n"
 
-#: guix/scripts/system.scm:921
+#: guix/scripts/system.scm:944
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            kompiler operativsystemet uden at installere noget\n"
 
-#: guix/scripts/system.scm:923
+#: guix/scripts/system.scm:946
 msgid "   container        build a container that shares the host's store\n"
 msgstr "   container        kompiler en container som deler værtens lager\n"
 
-#: guix/scripts/system.scm:925
+#: guix/scripts/system.scm:948
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr "   vm               kompiler et virtuelt maskinaftryk som deler værtens lager\n"
 
-#: guix/scripts/system.scm:927
+#: guix/scripts/system.scm:950
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         kompiler et fritstående virtuelt maskinaftryk\n"
 
-#: guix/scripts/system.scm:929
+#: guix/scripts/system.scm:952
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image       kompiler et diskaftryk, som egner sig til et USB-drev\n"
 
-#: guix/scripts/system.scm:931
+#: guix/scripts/system.scm:954
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     kompiler et Dockeraftryk\n"
 
-#: guix/scripts/system.scm:933
+#: guix/scripts/system.scm:956
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init             initialiser et rootfilsystem til at køre GNU.\n"
 
-#: guix/scripts/system.scm:935
+#: guix/scripts/system.scm:958
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  opret tjenesteudvidelsesgrafen i Dot-format\n"
 
-#: guix/scripts/system.scm:937
+#: guix/scripts/system.scm:960
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   opret grafen for shepherd-tjenester i Dot-format\n"
 
-#: guix/scripts/system.scm:941
+#: guix/scripts/system.scm:964
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -1772,7 +1871,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       returner de derivate stier for det givne system"
 
-#: guix/scripts/system.scm:943
+#: guix/scripts/system.scm:966
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -1783,7 +1882,7 @@ msgstr ""
 "                          evaluerer til i stedet for at læse FIL, når\n"
 "                          anvendelig"
 
-#: guix/scripts/system.scm:946
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -1794,7 +1893,7 @@ msgstr ""
 "                         brug STRATEGI når den opstår en fejl under læsning\n"
 "                         af FIL"
 
-#: guix/scripts/system.scm:949
+#: guix/scripts/system.scm:972
 msgid ""
 "\n"
 "      --file-system-type=TYPE\n"
@@ -1806,7 +1905,7 @@ msgstr ""
 "                         for »disk-image«, lav et rodfilsystem med TYPE (typen)\n"
 "                         (enten »ext4« eller »iso9660«)"
 
-#: guix/scripts/system.scm:953
+#: guix/scripts/system.scm:976
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -1814,7 +1913,7 @@ msgstr ""
 "\n"
 "      --image-size=STR   for »vm-image«, lav et aftryk af STR"
 
-#: guix/scripts/system.scm:955
+#: guix/scripts/system.scm:978
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -1822,7 +1921,7 @@ msgstr ""
 "\n"
 "      --no-bootloader    for »init«, installer ikke en opstartsindlæser"
 
-#: guix/scripts/system.scm:957
+#: guix/scripts/system.scm:980
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
@@ -1830,7 +1929,7 @@ msgstr ""
 "\n"
 "      --share=SPEC       for »vm«, del værtsfilsystem jævnfør SPEC"
 
-#: guix/scripts/system.scm:959
+#: guix/scripts/system.scm:982
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -1843,7 +1942,7 @@ msgstr ""
 "                         resultatet, og registrer den som en\n"
 "                         affaldsindsamlerrod"
 
-#: guix/scripts/system.scm:963
+#: guix/scripts/system.scm:986
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
@@ -1851,7 +1950,7 @@ msgstr ""
 "\n"
 "      --expose=SPEC      for »vm«, fremvis værtsfilsystem jævnfør SPEC"
 
-#: guix/scripts/system.scm:965
+#: guix/scripts/system.scm:988
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -1859,7 +1958,7 @@ msgstr ""
 "\n"
 "      --full-boot        for »vm«, lav en fuld opstartssekvens"
 
-#: guix/scripts/system.scm:967
+#: guix/scripts/system.scm:990
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -1867,37 +1966,37 @@ msgstr ""
 "\n"
 "      --skip-checks      udelad sikkerhedskontrol af filsystem og initrd-modul"
 
-#: guix/scripts/system.scm:1066
+#: guix/scripts/system.scm:1089
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "fil og udtryk kan ikke angives samtidigt~%"
 
-#: guix/scripts/system.scm:1073
+#: guix/scripts/system.scm:1096
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "ingen konfiguration angivet~%"
 
-#: guix/scripts/system.scm:1173
+#: guix/scripts/system.scm:1196
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: ukendt handling~%"
 
-#: guix/scripts/system.scm:1189
+#: guix/scripts/system.scm:1212
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "forkert antal argumenter for handling »~a«~%"
 
-#: guix/scripts/system.scm:1194
+#: guix/scripts/system.scm:1217
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: mangler kommandonavn~%"
 
-#: guix/scripts/system.scm:1196
+#: guix/scripts/system.scm:1219
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Prøv »guix system --help« for yderligere information.~%"
 
-#: guix/scripts/system/search.scm:64 guix/ui.scm:1112 guix/ui.scm:1126
+#: guix/scripts/system/search.scm:88 guix/ui.scm:1162 guix/ui.scm:1176
 msgid "unknown"
 msgstr "ukendt"
 
@@ -2083,123 +2182,123 @@ msgstr "kunne ikke oprette derivat: ~s~%"
 msgid "invalid license field"
 msgstr "ugyldigt licensfelt"
 
-#: guix/scripts/lint.scm:825
+#: guix/scripts/lint.scm:816
 #, scheme-format
 msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
 msgstr "~a: HTTP GET-fejl for ~a: ~a (~s)~%"
 
-#: guix/scripts/lint.scm:835
+#: guix/scripts/lint.scm:826
 #, scheme-format
 msgid "~a: host lookup failure: ~a~%"
 msgstr "~a: værtsnavnet kunne ikke slås op: ~a~%"
 
-#: guix/scripts/lint.scm:840
+#: guix/scripts/lint.scm:831
 #, scheme-format
 msgid "~a: TLS certificate error: ~a"
 msgstr "~a: TLS-certifikatfejl: ~a"
 
-#: guix/scripts/lint.scm:855
+#: guix/scripts/lint.scm:846
 msgid "while retrieving CVE vulnerabilities"
 msgstr "under indhentelse af CVE-sårbarheder"
 
-#: guix/scripts/lint.scm:898
+#: guix/scripts/lint.scm:883
 #, scheme-format
 msgid "probably vulnerable to ~a"
 msgstr "sandsynligvis sårbar for ~a"
 
-#: guix/scripts/lint.scm:905
+#: guix/scripts/lint.scm:890
 #, scheme-format
 msgid "while retrieving upstream info for '~a'"
 msgstr "under indhentelse af opstrømsinformation for »~a«"
 
-#: guix/scripts/lint.scm:913
+#: guix/scripts/lint.scm:898
 #, scheme-format
 msgid "can be upgraded to ~a"
 msgstr "kan opgraderes til ~a"
 
-#: guix/scripts/lint.scm:928
+#: guix/scripts/lint.scm:913
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "tabulering på linje ~a, kolonne ~a"
 
-#: guix/scripts/lint.scm:937
+#: guix/scripts/lint.scm:922
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "efterstillet mellemrum på linje ~a"
 
-#: guix/scripts/lint.scm:947
+#: guix/scripts/lint.scm:932
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "linjen ~a er alt for lang (~a tegn)"
 
-#: guix/scripts/lint.scm:958
+#: guix/scripts/lint.scm:943
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
 msgstr "linjen ~a: parenteser er ensomme, flyt til den forrige eller næste linje"
 
-#: guix/scripts/lint.scm:1028
+#: guix/scripts/lint.scm:1013
 msgid "Validate package descriptions"
 msgstr "Valider pakkebeskrivelser"
 
-#: guix/scripts/lint.scm:1032
+#: guix/scripts/lint.scm:1017
 msgid "Validate synopsis & description of GNU packages"
 msgstr "Valider synopsis og beskrivelse for GNU-pakker"
 
-#: guix/scripts/lint.scm:1036
+#: guix/scripts/lint.scm:1021
 msgid "Identify inputs that should be native inputs"
 msgstr "Identificer inddata som skal være standarddata"
 
-#: guix/scripts/lint.scm:1040
-msgid "Identify inputs that should be inputs at all"
-msgstr "Identificer inddata som skal være inddata"
+#: guix/scripts/lint.scm:1025
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr "Identificer inddata som ikke skal være inddata"
 
-#: guix/scripts/lint.scm:1044
+#: guix/scripts/lint.scm:1029
 msgid "Validate file names and availability of patches"
 msgstr "Valider filnavne og tilgængelighed for rettelser"
 
-#: guix/scripts/lint.scm:1048
+#: guix/scripts/lint.scm:1033
 msgid "Validate home-page URLs"
 msgstr "Valider hjemmesiders adresser"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:1054
+#: guix/scripts/lint.scm:1039
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr "Sikr at feltet »license« er en <license> eller en liste deraf"
 
-#: guix/scripts/lint.scm:1059
+#: guix/scripts/lint.scm:1044
 msgid "Validate source URLs"
 msgstr "Valider kildeadresser"
 
-#: guix/scripts/lint.scm:1063
+#: guix/scripts/lint.scm:1048
 msgid "Suggest 'mirror://' URLs"
 msgstr "Foreslå »mirror://«-adresser"
 
-#: guix/scripts/lint.scm:1067
+#: guix/scripts/lint.scm:1052
 msgid "Validate file names of sources"
 msgstr "Valider filnavne for kilder"
 
-#: guix/scripts/lint.scm:1071
+#: guix/scripts/lint.scm:1056
 msgid "Report failure to compile a package to a derivation"
 msgstr "Rapporter mislykket kompilering af en pakke til et derivat"
 
-#: guix/scripts/lint.scm:1075
+#: guix/scripts/lint.scm:1060
 msgid "Validate package synopses"
 msgstr "Valider pakkesynopser"
 
-#: guix/scripts/lint.scm:1079
+#: guix/scripts/lint.scm:1064
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
 msgstr "Kontroller databasen Common Vulnerabilities and Exposures (CVE)"
 
-#: guix/scripts/lint.scm:1084
+#: guix/scripts/lint.scm:1069
 msgid "Check the package for new upstream releases"
 msgstr "Kontroller pakken for nye opstrømsudgivelser"
 
-#: guix/scripts/lint.scm:1088
+#: guix/scripts/lint.scm:1073
 msgid "Look for formatting issues in the source"
 msgstr "Kig efter formateringsproblemstillinger i kilden"
 
-#: guix/scripts/lint.scm:1116
+#: guix/scripts/lint.scm:1101
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
@@ -2209,7 +2308,7 @@ msgstr ""
 "Kør et sæt af kontroller på den specificerede pakke; hvis ingen er specificeret,\n"
 "så kør kontrollerne på alle pakker.\n"
 
-#: guix/scripts/lint.scm:1119
+#: guix/scripts/lint.scm:1104
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -2219,7 +2318,7 @@ msgstr ""
 "  -c, --checkers=KONTROL1,KONTROL2...\n"
 "                         kør kun de specificerede kontroller"
 
-#: guix/scripts/lint.scm:1124
+#: guix/scripts/lint.scm:1109
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -2227,7 +2326,7 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    vis listen med tilgængelige lint-kontroller"
 
-#: guix/scripts/lint.scm:1144
+#: guix/scripts/lint.scm:1129
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a: ugyldig kontrol~%"
@@ -2574,7 +2673,7 @@ msgstr ""
 "\n"
 "      --list-types       vis de tilgængelige graftyper"
 
-#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:355
+#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:644
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -2698,17 +2797,26 @@ msgstr ""
 msgid "use '--to' or '--from'~%"
 msgstr "brug »--to« eller »--from«~%"
 
-#: guix/scripts/pack.scm:85
+#: guix/scripts/pack.scm:89
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: kompressor blev ikke fundet~%"
 
-#: guix/scripts/pack.scm:334
+#: guix/scripts/pack.scm:467
+#, scheme-format
+msgid ""
+"cross-compilation not implemented here;\n"
+"please email '~a'~%"
+msgstr ""
+"krydskompilering ikke implementeret her;\n"
+"skriv til '~a'~%"
+
+#: guix/scripts/pack.scm:621
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: ugyldig symbolsk henvisningsspecifikation~%"
 
-#: guix/scripts/pack.scm:347
+#: guix/scripts/pack.scm:634
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -2716,7 +2824,7 @@ msgstr ""
 "Brug: guix pack [TILVALG]... PAKKE...\n"
 "Opret en samling af PAKKE.\n"
 
-#: guix/scripts/pack.scm:353
+#: guix/scripts/pack.scm:640
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -2724,7 +2832,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    kompiler en pakke i det givne FORMAT"
 
-#: guix/scripts/pack.scm:361
+#: guix/scripts/pack.scm:642
+msgid ""
+"\n"
+"  -R, --relocatable      produce relocatable executables"
+msgstr ""
+"\n"
+"  -R, --relocatable      lav flytbare kørbare filer"
+
+#: guix/scripts/pack.scm:650
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -2732,7 +2848,7 @@ msgstr ""
 "\n"
 "  -C, --compression=VÆRKTØJ  komprimer via VÆRKTØJ--f.eks., »lzip«"
 
-#: guix/scripts/pack.scm:363
+#: guix/scripts/pack.scm:652
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -2740,7 +2856,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=SPEC     opret symbolske henvisninger til profilen jævnfør SPEC"
 
-#: guix/scripts/pack.scm:365
+#: guix/scripts/pack.scm:654
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -2748,7 +2864,7 @@ msgstr ""
 "\n"
 "  -m, --manifest=FIL     opret en pakke med manifestet fra FIL"
 
-#: guix/scripts/pack.scm:367
+#: guix/scripts/pack.scm:656
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -2756,7 +2872,7 @@ msgstr ""
 "\n"
 "      --localstatedir    inkluder /var/guix i resultatpakken"
 
-#: guix/scripts/pack.scm:369
+#: guix/scripts/pack.scm:658
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -2764,12 +2880,12 @@ msgstr ""
 "\n"
 "      --bootstrap        brug bootstraps binære filer til at kompilere pakken"
 
-#: guix/scripts/pack.scm:405
+#: guix/scripts/pack.scm:700
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "både et manifest og en pakkeliste blev angivet~%"
 
-#: guix/scripts/pack.scm:429
+#: guix/scripts/pack.scm:743
 #, scheme-format
 msgid "~a: unknown pack format"
 msgstr "~a: ukendt pakkeformat"
@@ -2986,65 +3102,65 @@ msgstr "~a: kunne ikke lokalisere kildefil"
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: intet »versionsfelt« i kilde; udelader~%"
 
-#: guix/ui.scm:161
+#: guix/ui.scm:169
 #, scheme-format
-msgid "~a: unbound variable"
-msgstr "~a: variabel uden binding"
+msgid "error: ~a: unbound variable"
+msgstr "fejl: ~a: variabel uden binding"
 
-#: guix/ui.scm:253
+#: guix/ui.scm:265
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "går i fejlsøger; tast »,bt« for en tilbagesporing\n"
 
-#: guix/ui.scm:302
+#: guix/ui.scm:314
 #, scheme-format
 msgid "hint: ~a~%"
 msgstr "fif: ~a~%"
 
-#: guix/ui.scm:314 guix/ui.scm:362 guix/ui.scm:369
+#: guix/ui.scm:330
+msgid "Did you forget a @code{use-modules} form?"
+msgstr "Glemte du en @code{use-modules}-form?"
+
+#: guix/ui.scm:332
+#, scheme-format
+msgid "Did you forget @code{(use-modules ~a)}?"
+msgstr "Glemte du @code{(use-modules ~a)}?"
+
+#: guix/ui.scm:341 guix/ui.scm:381 guix/ui.scm:388
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "kunne ikke indlæse »~a«: ~a~%"
 
-#: guix/ui.scm:321
+#: guix/ui.scm:348
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~amanglende afsluttende parentes~%"
 
-#: guix/ui.scm:326 guix/ui.scm:342 guix/ui.scm:642
+#: guix/ui.scm:353 guix/ui.scm:361 guix/ui.scm:692
 #, scheme-format
 msgid "~a: error: ~a~%"
 msgstr "~a: fejl: ~a~%"
 
-#: guix/ui.scm:334
-msgid "Did you forget a @code{use-modules} form?"
-msgstr "Glemte du en @code{use-modules}-form?"
-
-#: guix/ui.scm:336
-#, scheme-format
-msgid "Did you forget @code{(use-modules ~a)}?"
-msgstr "Glemte du @code{(use-modules ~a)}?"
-
-#: guix/ui.scm:349 guix/ui.scm:712
+#: guix/ui.scm:368 guix/ui.scm:762
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "undtagelse smidt: ~s~%"
 
-#: guix/ui.scm:353 guix/ui.scm:375
+#: guix/ui.scm:372 guix/ui.scm:394
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "kunne ikke indlæse »~a«:~%"
 
-#: guix/ui.scm:365
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~a: warning: ~a~%"
 msgstr "~a: advarsel: ~a~%"
 
-#: guix/ui.scm:372
+#: guix/ui.scm:391
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "kunne ikke indlæse »~a«: undtagelse smidt: ~s~%"
 
-#: guix/ui.scm:384
+#: guix/ui.scm:424
 #, scheme-format
 msgid "failed to install locale: ~a~%"
 msgstr "kunne ikke installere sprog: ~a~%"
@@ -3052,15 +3168,15 @@ msgstr "kunne ikke installere sprog: ~a~%"
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:414
+#: guix/ui.scm:454
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:415
+#: guix/ui.scm:455
 msgid "the Guix authors\n"
 msgstr "Guix-forfatterne\n"
 
-#: guix/ui.scm:416
+#: guix/ui.scm:456
 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"
@@ -3074,7 +3190,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:428
+#: guix/ui.scm:468
 #, scheme-format
 msgid ""
 "\n"
@@ -3083,7 +3199,7 @@ msgstr ""
 "\n"
 "Rapporter fejl til: ~a."
 
-#: guix/ui.scm:430
+#: guix/ui.scm:470
 #, scheme-format
 msgid ""
 "\n"
@@ -3092,7 +3208,7 @@ msgstr ""
 "\n"
 "~a hjemmeside: <~a>"
 
-#: guix/ui.scm:432
+#: guix/ui.scm:472
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -3100,27 +3216,27 @@ msgstr ""
 "\n"
 "Generel hjælp til brugen af GNU-programmer: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:477
+#: guix/ui.scm:517
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "»~a« er ikke et gyldigt regulært udtryk: ~a~%"
 
-#: guix/ui.scm:483
+#: guix/ui.scm:523
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: ugyldigt nummer~%"
 
-#: guix/ui.scm:500
+#: guix/ui.scm:540
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "ugyldigt nummer: ~a~%"
 
-#: guix/ui.scm:523
+#: guix/ui.scm:563
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "ukendt enhed: ~a~%"
 
-#: guix/ui.scm:538
+#: guix/ui.scm:578
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -3129,7 +3245,7 @@ msgstr ""
 "Du kan ikke have to forskellige versioner\n"
 "eller varianter af @code{~a} i den samme profil."
 
-#: guix/ui.scm:541
+#: guix/ui.scm:581
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -3138,111 +3254,116 @@ msgstr ""
 "Prøv at opgradere både @code{~a} og @code{~a},\n"
 "eller fjern en af dem fra profilen."
 
-#: guix/ui.scm:560
+#: guix/ui.scm:600
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: pakken »~a« har ugyldige inddata: ~s~%"
 
-#: guix/ui.scm:567
+#: guix/ui.scm:607
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: kompileringssystem »~a« understøtter ikke krydskompileringer~%"
 
-#: guix/ui.scm:573
+#: guix/ui.scm:613
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: ugyldige G-udtryksindata~%"
 
-#: guix/ui.scm:576
+#: guix/ui.scm:616
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "profilen »~a« findes ikke~%"
 
-#: guix/ui.scm:579
+#: guix/ui.scm:619
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "oprettelse ~a af profilen »~a« findes ikke~%"
 
-#: guix/ui.scm:588
+#: guix/ui.scm:628
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... formeret fra ~a@~a~%"
 
-#: guix/ui.scm:598
+#: guix/ui.scm:638
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "profil indeholder elementer i konflikt for ~a~a~%"
 
-#: guix/ui.scm:601
+#: guix/ui.scm:641
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  første element: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:647
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr " andet element: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:619
+#: guix/ui.scm:659
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "ødelagte inddata under gendannelse af »~a« fra ~s~%"
 
-#: guix/ui.scm:621
+#: guix/ui.scm:661
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "ødelagte inddata under gendannelse af arkiv fra ~s~%"
 
-#: guix/ui.scm:624
+#: guix/ui.scm:664
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "kunne ikke forbinde til »~a«: ~a~%"
 
-#: guix/ui.scm:629
+#: guix/ui.scm:669
 #, scheme-format
 msgid "build failed: ~a~%"
 msgstr "kompilering mislykkedes: ~a~%"
 
-#: guix/ui.scm:632
+#: guix/ui.scm:672
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "reference til ugyldige uddata »~a« for derivat »~a«~%"
 
-#: guix/ui.scm:636
+#: guix/ui.scm:676
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "filen »~a« blev ikke fundet i disse mapper:~{ ~a~}~%"
 
-#: guix/ui.scm:662
+#: guix/ui.scm:681
+#, scheme-format
+msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
+msgstr "program afsluttede~@[ med ikke-nul afslutstatus ~a~]~@[ termineret med signal ~a~]~@[ stoppet af signal ~a~]: ~s~%"
+
+#: guix/ui.scm:712
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/ui.scm:697
+#: guix/ui.scm:747
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "kunne ikke læse udtryk ~s: ~s~%"
 
-#: guix/ui.scm:703
+#: guix/ui.scm:753
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "kunne ikke evaluere udtryk »~a«:~%"
 
-#: guix/ui.scm:706
+#: guix/ui.scm:756
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "syntaksfejl: ~a~%"
 
-#: guix/ui.scm:724
+#: guix/ui.scm:774
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "udtryk ~s evaluerer ikke til en pakke~%"
 
-#: guix/ui.scm:743
+#: guix/ui.scm:793
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "mindst ~,1h MB krævet men kun ~,1h MB tilgængelig i ~a~%"
 
-#: guix/ui.scm:811
+#: guix/ui.scm:861
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -3251,18 +3372,18 @@ msgstr[1] "~:[De følgende derivater ville blive kompileret:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:819
+#: guix/ui.scm:869
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB ville blive hentet:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:824
+#: guix/ui.scm:874
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Den følgende fil ville blive hentet:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[De følgende filer ville blive hentet:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:831
+#: guix/ui.scm:881
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -3271,106 +3392,117 @@ msgstr[1] "~:[De følgende derivater vil blive kompileret:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:839
+#: guix/ui.scm:889
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB vil blive hentet:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:844
+#: guix/ui.scm:894
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Den følgende fil vil blive hentet:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[De følgende filer vil blive hentet:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:904
+#: guix/ui.scm:954
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke ville blive fjernet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker ville blive fjernet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:909
+#: guix/ui.scm:959
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke vil blive fjernet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker vil blive fjernet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:922
+#: guix/ui.scm:972
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke ville blive nedgraderet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker ville blive nedgraderet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:927
+#: guix/ui.scm:977
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke vil blive nedgraderet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker vil blive nedgraderet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:940
+#: guix/ui.scm:990
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke ville blive opgraderet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker ville blive opgraderet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:945
+#: guix/ui.scm:995
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke vil blive opgraderet:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker vil blive opgraderet:~%~{~a~%~}~%"
 
-#: guix/ui.scm:956
+#: guix/ui.scm:1006
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke ville blive installeret:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker ville blive installeret:~%~{~a~%~}~%"
 
-#: guix/ui.scm:961
+#: guix/ui.scm:1011
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Den følgende pakke vil blive installeret:~%~{~a~%~}~%"
 msgstr[1] "De følgende pakker vil blive installeret:~%~{~a~%~}~%"
 
-#: guix/ui.scm:978
+#: guix/ui.scm:1028
 msgid "<unknown location>"
 msgstr "<ukendt sted>"
 
-#: guix/ui.scm:1340
+#: guix/ui.scm:1390
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generation ~a\t~a"
 
+# siden virker ikke
+#. 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:1399
+#, scheme-format
+msgid "~b ~d ~Y ~T"
+msgstr "~b ~d ~Y ~T"
+
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1350
+#: guix/ui.scm:1405
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(nuværende)~%"
 
-#: guix/ui.scm:1393
+#: guix/ui.scm:1448
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "skiftede fra generation ~a til ~a~%"
 
-#: guix/ui.scm:1409
+#: guix/ui.scm:1464
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "sletter ~a~%"
 
-#: guix/ui.scm:1440
+#: guix/ui.scm:1495
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Prøv »guix --help« for yderligere information.~%"
 
-#: guix/ui.scm:1468
+#: guix/ui.scm:1523
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -3378,21 +3510,21 @@ msgstr ""
 "Brug: guix KOMMANDO ARG...\n"
 "Kør KOMMANDO med ARG.\n"
 
-#: guix/ui.scm:1471
+#: guix/ui.scm:1526
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "KOMMANDO skal være en af underkommandoerne vist nedenfor:\n"
 
-#: guix/ui.scm:1491
+#: guix/ui.scm:1546
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: kommando blev ikke fundet~%"
 
-#: guix/ui.scm:1521
+#: guix/ui.scm:1576
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: mangler kommandonavn~%"
 
-#: guix/ui.scm:1529
+#: guix/ui.scm:1584
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: ikke genkendt tilvalg »~a«~%"
@@ -3407,45 +3539,45 @@ msgstr "følger omdirigering til »~a«...~%"
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: HTTP-overførsel mislykkede: ~a (~s)"
 
-#: guix/nar.scm:155
+#: guix/nar.scm:156
 msgid "signature is not a valid s-expression"
 msgstr "signatur er ikke et gyldigt s-udtryk"
 
-#: guix/nar.scm:164
+#: guix/nar.scm:165
 msgid "invalid signature"
 msgstr "ugyldig signatur"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:169
 msgid "invalid hash"
 msgstr "ugyldig hash"
 
-#: guix/nar.scm:176
+#: guix/nar.scm:177
 msgid "unauthorized public key"
 msgstr "uautoriseret offentlig nøgle"
 
-#: guix/nar.scm:181
+#: guix/nar.scm:182
 msgid "corrupt signature data"
 msgstr "ødelagt signaturdata"
 
-#: guix/nar.scm:201
+#: guix/nar.scm:202
 msgid "corrupt file set archive"
 msgstr "ødelagt filsætarkiv"
 
-#: guix/nar.scm:211
+#: guix/nar.scm:212
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "importerer fil eller mappe »~a«...~%"
 
-#: guix/nar.scm:222
+#: guix/nar.scm:223
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "fandt gyldig signatur for »~a«~%"
 
-#: guix/nar.scm:229
+#: guix/nar.scm:230
 msgid "imported file lacks a signature"
 msgstr "importeret fil mangler en signatur"
 
-#: guix/nar.scm:268
+#: guix/nar.scm:269
 msgid "invalid inter-file archive mark"
 msgstr "ugyldig arkivmærke for mellemfil"