summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--build-aux/git-authenticate.scm4
-rw-r--r--doc/guix.texi29
-rw-r--r--etc/completion/bash/guix2
-rw-r--r--etc/news.scm43
-rw-r--r--gnu/installer.scm7
-rw-r--r--gnu/installer/final.scm27
-rw-r--r--gnu/installer/newt/final.scm21
-rw-r--r--gnu/local.mk10
-rw-r--r--gnu/machine.scm2
-rw-r--r--gnu/machine/digital-ocean.scm2
-rw-r--r--gnu/machine/ssh.scm2
-rw-r--r--gnu/packages/admin.scm42
-rw-r--r--gnu/packages/aidc.scm39
-rw-r--r--gnu/packages/antivirus.scm6
-rw-r--r--gnu/packages/backup.scm9
-rw-r--r--gnu/packages/bioconductor.scm6
-rw-r--r--gnu/packages/bioinformatics.scm15
-rw-r--r--gnu/packages/boost.scm4
-rw-r--r--gnu/packages/check.scm26
-rw-r--r--gnu/packages/chicken.scm68
-rw-r--r--gnu/packages/chromium.scm9
-rw-r--r--gnu/packages/cran.scm18
-rw-r--r--gnu/packages/crates-io.scm2494
-rw-r--r--gnu/packages/crypto.scm7
-rw-r--r--gnu/packages/cups.scm4
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/dictionaries.scm5
-rw-r--r--gnu/packages/diffoscope.scm74
-rw-r--r--gnu/packages/djvu.scm54
-rw-r--r--gnu/packages/dns.scm1
-rw-r--r--gnu/packages/docker.scm21
-rw-r--r--gnu/packages/dunst.scm14
-rw-r--r--gnu/packages/education.scm113
-rw-r--r--gnu/packages/elf.scm24
-rw-r--r--gnu/packages/emacs-xyz.scm260
-rw-r--r--gnu/packages/file-systems.scm6
-rw-r--r--gnu/packages/finance.scm4
-rw-r--r--gnu/packages/fonts.scm22
-rw-r--r--gnu/packages/fontutils.scm2
-rw-r--r--gnu/packages/freedesktop.scm17
-rw-r--r--gnu/packages/ftp.scm4
-rw-r--r--gnu/packages/games.scm443
-rw-r--r--gnu/packages/gdb.scm10
-rw-r--r--gnu/packages/gimp.scm4
-rw-r--r--gnu/packages/gl.scm19
-rw-r--r--gnu/packages/gnome-xyz.scm34
-rw-r--r--gnu/packages/gnome.scm51
-rw-r--r--gnu/packages/gnunet.scm2
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/golang.scm416
-rw-r--r--gnu/packages/gpodder.scm6
-rw-r--r--gnu/packages/graph.scm29
-rw-r--r--gnu/packages/graphics.scm13
-rw-r--r--gnu/packages/gstreamer.scm34
-rw-r--r--gnu/packages/ham-radio.scm51
-rw-r--r--gnu/packages/haskell-xyz.scm109
-rw-r--r--gnu/packages/i2p.scm2
-rw-r--r--gnu/packages/kde-internet.scm2
-rw-r--r--gnu/packages/libreoffice.scm34
-rw-r--r--gnu/packages/libusb.scm12
-rw-r--r--gnu/packages/linux.scm81
-rw-r--r--gnu/packages/lisp-xyz.scm767
-rw-r--r--gnu/packages/lisp.scm4
-rw-r--r--gnu/packages/lua.scm159
-rw-r--r--gnu/packages/lxde.scm2
-rw-r--r--gnu/packages/lxqt.scm10
-rw-r--r--gnu/packages/mail.scm11
-rw-r--r--gnu/packages/man.scm6
-rw-r--r--gnu/packages/maths.scm6
-rw-r--r--gnu/packages/messaging.scm2
-rw-r--r--gnu/packages/music.scm29
-rw-r--r--gnu/packages/musl.scm2
-rw-r--r--gnu/packages/nano.scm6
-rw-r--r--gnu/packages/networking.scm83
-rw-r--r--gnu/packages/node.scm4
-rw-r--r--gnu/packages/opencl.scm91
-rw-r--r--gnu/packages/parallel.scm6
-rw-r--r--gnu/packages/password-utils.scm15
-rw-r--r--gnu/packages/patches/docker-adjust-tests-for-changes-in-go.patch67
-rw-r--r--gnu/packages/patches/docker-engine-test-noinstall.patch23
-rw-r--r--gnu/packages/patches/docker-use-fewer-modprobes.patch137
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch4
-rw-r--r--gnu/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch100
-rw-r--r--gnu/packages/patches/libreoffice-glm.patch58
-rw-r--r--gnu/packages/patches/libreoffice-icu.patch126
-rw-r--r--gnu/packages/patches/lvm2-static-link.patch29
-rw-r--r--gnu/packages/patches/qrcodegen-cpp-make-install.patch448
-rw-r--r--gnu/packages/patches/reprotest-support-guix.patch79
-rw-r--r--gnu/packages/patches/rust-openssl-sys-no-vendor.patch23
-rw-r--r--gnu/packages/patchutils.scm4
-rw-r--r--gnu/packages/pdf.scm94
-rw-r--r--gnu/packages/perl.scm21
-rw-r--r--gnu/packages/protobuf.scm8
-rw-r--r--gnu/packages/pulseaudio.scm77
-rw-r--r--gnu/packages/python-xyz.scm125
-rw-r--r--gnu/packages/rust-apps.scm222
-rw-r--r--gnu/packages/rust.scm2
-rw-r--r--gnu/packages/samba.scm26
-rw-r--r--gnu/packages/scanner.scm7
-rw-r--r--gnu/packages/scheme.scm41
-rw-r--r--gnu/packages/screen.scm6
-rw-r--r--gnu/packages/sdr.scm3
-rw-r--r--gnu/packages/serialization.scm2
-rw-r--r--gnu/packages/shells.scm37
-rw-r--r--gnu/packages/statistics.scm8
-rw-r--r--gnu/packages/stb.scm11
-rw-r--r--gnu/packages/storage.scm4
-rw-r--r--gnu/packages/syncthing.scm311
-rw-r--r--gnu/packages/terminals.scm4
-rw-r--r--gnu/packages/text-editors.scm12
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/tor.scm6
-rw-r--r--gnu/packages/version-control.scm46
-rw-r--r--gnu/packages/video.scm9
-rw-r--r--gnu/packages/vim.scm17
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm103
-rw-r--r--gnu/packages/webkit.scm8
-rw-r--r--gnu/packages/wine.scm7
-rw-r--r--gnu/packages/wm.scm208
-rw-r--r--gnu/packages/xdisorg.scm90
-rw-r--r--gnu/services/desktop.scm2
-rw-r--r--gnu/services/web.scm4
-rw-r--r--gnu/tests/reconfigure.scm2
-rw-r--r--guix/build/go-build-system.scm5
-rw-r--r--guix/git.scm25
-rw-r--r--guix/import/gem.scm147
-rw-r--r--guix/import/pypi.scm34
-rw-r--r--guix/scripts/build.scm19
-rw-r--r--guix/scripts/deploy.scm2
-rw-r--r--guix/scripts/describe.scm80
-rw-r--r--guix/scripts/pull.scm80
-rw-r--r--guix/scripts/system/reconfigure.scm2
-rw-r--r--guix/swh.scm4
-rw-r--r--guix/ui.scm2
-rw-r--r--po/doc/guix-manual.de.po2
-rw-r--r--po/guix/fr.po2796
-rw-r--r--po/guix/pt_BR.po3952
-rw-r--r--tests/gem.scm4
-rw-r--r--tests/graph.scm4
-rw-r--r--tests/guix-build.sh9
-rw-r--r--tests/syscalls.scm55
143 files changed, 11602 insertions, 4340 deletions
diff --git a/.mailmap b/.mailmap
index 23b5b6a1c4..a1cbf02030 100644
--- a/.mailmap
+++ b/.mailmap
@@ -30,6 +30,7 @@ Eric Dvorsak <eric@dvorsak.fr> <yenda1@gmail.com>
 George Clemmer <myglc2@gmail.com>
 ison <ison@airmail.cc> <ison111@protonmail.com>
 Ivan Vilata i Balaguer <ivan@selidor.net>
+Jakob L. Kreuze <zerodaysfordays@sdf.org> <zerodaysfordays@sdf.lonestar.org>
 Jeff Mickey <j@codemac.net> <jm@igneous.io>
 John Darrington <jmd@gnu.org> <john@darrington.wattle.id.au>
 John J. Foerch <jjfoerch@earthlink.net>
diff --git a/build-aux/git-authenticate.scm b/build-aux/git-authenticate.scm
index d92da90758..aa9103a372 100644
--- a/build-aux/git-authenticate.scm
+++ b/build-aux/git-authenticate.scm
@@ -133,6 +133,8 @@
      "B051 5948 F1E7 D3C1 B980  38A0 2646 FA30 BACA 7F08")
     ("lsl88"
      "2AE3 1395 932B E642 FC0E  D99C 9BED 6EDA 32E5 B0BC")
+    ("mab"
+     "BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103")
     ("marusich"
      "CBF5 9755 CBE7 E7EF EF18  3FB1 DD40 9A15 D822 469D")
     ("mbakke"
@@ -149,6 +151,8 @@
     ("nckx (2nd)"
      ;; primary: "F5BC 5534 C36F 0087 B39D  36EF 1C9D C4FE B9DB 7C4B"
      "F5DA 2032 4B87 3D0B 7A38  7672 0DB0 FF88 4F55 6D79")
+    ("niedzejkob"
+     "E576 BFB2 CF6E B13D F571  33B9 E315 A758 4613 1564")
     ("ngz"
      "ED0E F1C8 E126 BA83 1B48  5FE9 DA00 B4F0 48E9 2F2D")
     ("pelzflorian"
diff --git a/doc/guix.texi b/doc/guix.texi
index bd9d896c78..282f9578bf 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46,7 +46,7 @@ Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 Copyright @copyright{} 2017 Thomas Danckaert@*
 Copyright @copyright{} 2017 humanitiesNerd@*
 Copyright @copyright{} 2017 Christopher Allan Webber@*
-Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@*
+Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@*
 Copyright @copyright{} 2017, 2019, 2020 Hartmut Goebel@*
 Copyright @copyright{} 2017, 2019, 2020 Maxim Cournoyer@*
 Copyright @copyright{} 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice@*
@@ -72,6 +72,7 @@ Copyright @copyright{} 2019 Guillaume Le Vaillant@*
 Copyright @copyright{} 2020 Leo Prikler@*
 Copyright @copyright{} 2019, 2020 Simon Tournier@*
 Copyright @copyright{} 2020 Wiktor Żelazny@*
+Copyright @copyright{} 2020 Damien Cassou@*
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -3292,8 +3293,10 @@ $ guix build emacs --dry-run
 @end example
 
 @noindent
-This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and
-will be downloaded, when possible, for future builds.
+The text changed from ``The following derivations would be built'' to
+``112.3 MB would be downloaded''.  This indicates that substitutes from
+@code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when
+possible, for future builds.
 
 @cindex substitutes, how to disable
 The substitute mechanism can be disabled globally by running
@@ -4158,7 +4161,7 @@ say, on another machine, by providing a channel specification in
       (channel
        (name 'my-personal-packages)
        (url "https://example.org/personal-packages.git")
-       (branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
+       (commit "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
 @end lisp
 
 The @command{guix describe --format=channels} command can even generate this
@@ -5057,12 +5060,21 @@ Alternatively, you can produce a pack in the Docker image format using
 the following command:
 
 @example
-guix pack -f docker guile emacs geiser
+guix pack -f docker -S /bin=bin guile guile-readline
 @end example
 
 @noindent
 The result is a tarball that can be passed to the @command{docker load}
-command.  See the
+command, followed by @code{docker run}:
+
+@example
+docker load < @var{file}
+docker run -ti guile-guile-readline /bin/guile
+@end example
+
+@noindent
+where @var{file} is the image returned by @var{guix pack}, and
+@code{guile-guile-readline} is its ``image tag''.  See the
 @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker
 documentation} for more information.
 
@@ -8444,6 +8456,11 @@ As an example, @var{file} might contain a package definition like this
 @include package-hello.scm
 @end lisp
 
+@item --manifest=@var{manifest}
+@itemx -m @var{manifest}
+Build all packages listed in the given @var{manifest}
+(@pxref{profile-manifest, @option{--manifest}}).
+
 @item --expression=@var{expr}
 @itemx -e @var{expr}
 Build the package or derivation @var{expr} evaluates to.
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index edfb627e87..0333bfc8a2 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -178,7 +178,7 @@ _guix_complete ()
 		_guix_complete_installed_package "$word_at_point"
             elif _guix_is_command "build"
             then
-                if _guix_is_dash_L
+                if _guix_is_dash_L || _guix_is_dash_m
                 then
                     _guix_complete_file
 		else
diff --git a/etc/news.scm b/etc/news.scm
index 6b58e7742b..305d49366d 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -1,6 +1,7 @@
 ;; GNU Guix news, for use by 'guix pull'.
 ;;
 ;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;
 ;; Copying and distribution of this file, with or without modification, are
 ;; permitted in any medium without royalty provided the copyright notice and
@@ -9,9 +10,36 @@
 (channel-news
  (version 0)
 
+ (entry (commit "e3e1a7ba08af2d58c47264c543617e499c239444")
+        (title (en "@command{guix pull} now supports SSH authenticated
+repositories")
+               (de "@command{guix pull} unterstützt nun SSH-authentifizierte
+Repositorys")
+               (fr "@command{guix pull} prend maintenant en charge
+l'authentification en SSH pour les dépôts.")
+               (nl "@command{guix pull} ondersteunt nu SSH-geauthenticeerde
+repository's."))
+        (body (en "The @command{guix pull} command now supports SSH
+authenticated repositories as argument of @option{--url} and in custom
+channels definitions.  The authentication requires that an @command{ssh-agent}
+is running.")
+              (de "Der Befehl @command{guix pull} unterstützt nun über SSH
+authentifizierte Repositorys als Argument von @option{--url} und in
+selbstgeschriebenen Kanaldefinitionen. Zur Authentisierung muss ein
+@command{ssh-agent} laufen.")
+              (fr "La commande @command{guix pull} prend maintenant en
+charge l'authentification SSH pour les dépôts dans l'argument @option{--url}
+et dans le définitions de canaux personnalisés.  L'authentification
+nécessite qu'un @command{ssh-agent} soit lancé.")
+              (nl "Het @command{guix pull}-commando ondersteunt nu
+SSH-geauthenticeerde opslag als argument na @option{--url} en bij het
+schrijven van eigen kanaaldefinities.  Hiervoor moet een @command{ssh-agent}
+gestart zijn.")))
+
  (entry (commit "8234fe653e61d0090138cbd4c48d877568355439")
         (title (en "Guix now runs on Guile 3.0")
                (de "Guix läuft jetzt auf Guile 3.0")
+               (fr "Guix tourne maintenant sous Guile 3.0")
                (nl "Guix draait nu op Guile 3.0"))
         (body (en "The Guix revision you just pulled runs on version 3.0 of
 GNU@tie{}Guile (previously it would run on version 2.2).  Guile 3.0 improves
@@ -25,6 +53,11 @@ erzeugt werden (JIT-Kompilierung).  Der Wechsel sollte für Sie völlig
 transparent sein und Guix verhält sich gleich.  Siehe
 @uref{https://gnu.org/software/guile} für weitere Informationen zu Guile
 3.0.")
+              (fr "La révision de Guix que tu viens de récupérer tourne sous
+la version 3.0 de GNU@tie{}Guile (Guix tournait avant sous la version 2.2).
+Guile 3.0 améliore la performance en générant du code natif à la volée (JIT).
+Le changement devrait être totalement transparent pour toi.  Voir
+@uref{https://gnu.org/software/guile} pour plus d'information sur Guile 3.0.")
               (nl "De Guix die u net heeft gepulld gebruikt versie 3.0 van
 GNU@tie{}Guile (voorheen was dat versie 2.2).  Guile@tie{}3.0 draait dezelfde
 programma's doorgaans sneller door ze ‘just-in-time’ (JIT) te vertalen naar
@@ -34,7 +67,8 @@ Guile@tie{}3.0.")))
 
  (entry (commit "828a39da68a9169ef1d9f9ff02a1c66b1bcbe884")
         (title (en "New @option{--diff} option for @command{guix challenge}")
-               (de "Neue @option{--diff}-Option für @command{guix challenge}"))
+               (de "Neue @option{--diff}-Option für @command{guix challenge}")
+               (fr "Nouvelle option @option{--diff} sur @command{guix challenge}"))
         (body (en "The @command{guix challenge} command, which compares
 binaries provided by different substitute servers as well as those built
 locally, has a new @option{--diff} option.  With @option{--diff=simple} (the
@@ -42,6 +76,13 @@ default), @command{guix challenge} automatically downloads binaries and
 reports the list of differing files; @option{--diff=diffoscope} instructs it
 to pass them to @command{diffoscope}, which simplifies the comparison process.
 Run @command{info \"(guix) Invoking guix challenge\"}, for more info.")
+              (fr "La commande @command{guix challenge} qui compare les binaires
+fournis par différents serveurs de substituts aux contsructions locales a une
+nouvelle option @option{--diff}.  Avec @option{--diff=simple} (par défaut),
+@command{guix challenge} télécharge automatiquement les binaires et rapporte
+la liste des fichiers différents@tie{}; @option{--diff=diffoscope} lui dit
+de les passer à @command{diffoscope} qui simplifie le processus de comparaison.
+Lance @command{info \"(guix.fr) Invoquer guix challenge\"} pour plus d'info.")
               (de "Der Befehl @command{guix challenge}, mit dem Binärdateien
 von unterschiedlichen Substitut-Servern oder lokale Erstellungen miteinander
 verglichen werden können, hat eine neue Befehlszeilenoption @option{--diff}
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 6766037aae..b93cebbc13 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -389,8 +389,9 @@ selected keymap."
                      ;; We did it!  Let's reboot!
                      (sync)
                      (stop-service 'root))
-                    (_                            ;installation failed
-                     ;; TODO: Honor the result of 'run-install-failed-page'.
+                    (_
+                     ;; The installation failed, exit so that it is restarted
+                     ;; by login.
                      #f)))
                 (const #f)
                 (lambda (key . args)
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 1b85900912..8c2185e36f 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -23,6 +23,7 @@
   #:use-module (gnu installer utils)
   #:use-module (gnu installer user)
   #:use-module (gnu services herd)
+  #:use-module (guix build syscalls)
   #:use-module (guix build utils)
   #:use-module (gnu build accounts)
   #:use-module ((gnu system shadow) #:prefix sys:)
@@ -96,6 +97,15 @@ USERS."
   (write-passwd password (string-append etc "/passwd"))
   (write-shadow shadow (string-append etc "/shadow")))
 
+(define (umount-cow-store)
+  "Remove the store overlay and the bind-mount on /tmp created by the
+cow-store service."
+  (let ((tmp-dir "/remove"))
+    (mkdir-p tmp-dir)
+    (mount (%store-directory) tmp-dir "" MS_MOVE)
+    (umount tmp-dir)
+    (umount "/tmp")))
+
 (define* (install-system locale #:key (users '()))
   "Create /etc/shadow and /etc/passwd on the installation target for USERS.
 Start COW-STORE service on target directory and launch guix install command in
@@ -114,5 +124,16 @@ or #f.  Return #t on success and #f on failure."
     ;; passwords that we've put in there.
     (create-user-database users (%installer-target-dir))
 
-    (start-service 'cow-store (list (%installer-target-dir)))
-    (run-shell-command install-command #:locale locale)))
+    (dynamic-wind
+      (lambda ()
+        (start-service 'cow-store (list (%installer-target-dir))))
+      (lambda ()
+        (run-shell-command install-command #:locale locale))
+      (lambda ()
+        (stop-service 'cow-store)
+        ;; Remove the store overlay created at cow-store service start.
+        ;; Failing to do that will result in further umount calls to fail
+        ;; because the target device is seen as busy. See:
+        ;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
+        (umount-cow-store)
+        #f))))
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 061bcd3f78..405eee2540 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -27,6 +27,7 @@
   #:use-module (guix i18n)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
+  #:use-module (ice-9 match)
   #:use-module (newt)
   #:export (run-final-page))
 
@@ -73,12 +74,18 @@ press the button to reboot."))
   'success)
 
 (define (run-install-failed-page)
-  (choice-window
-   (G_ "Installation failed")
-   (G_ "Restart installer")
-   (G_ "Retry system install")
-   (G_ "The final system installation step failed.  You can retry the \
-last step, or restart the installer.")))
+  (match (choice-window
+          (G_ "Installation failed")
+          (G_ "Resume")
+          (G_ "Restart the installer")
+          (G_ "The final system installation step failed.  You can resume from \
+a specific step, or restart the installer."))
+    (1 (raise
+        (condition
+         (&installer-step-abort))))
+    (2
+     ;; Keep going, the installer will be restarted later on.
+     #t)))
 
 (define* (run-install-shell locale
                             #:key (users '()))
diff --git a/gnu/local.mk b/gnu/local.mk
index 60b1ce9248..347713239d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -109,6 +109,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/check.scm			\
   %D%/packages/chemistry.scm			\
   %D%/packages/chez.scm				\
+  %D%/packages/chicken.scm				\
   %D%/packages/chromium.scm			\
   %D%/packages/ci.scm				\
   %D%/packages/cinnamon.scm			\
@@ -818,10 +819,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/docbook-xsl-nonrecursive-string-subst.patch	\
   %D%/packages/patches/doc++-include-directives.patch		\
   %D%/packages/patches/doc++-segfault-fix.patch			\
-  %D%/packages/patches/docker-adjust-tests-for-changes-in-go.patch	\
-  %D%/packages/patches/docker-engine-test-noinstall.patch	\
   %D%/packages/patches/docker-fix-tests.patch			\
-  %D%/packages/patches/docker-use-fewer-modprobes.patch		\
   %D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch	\
   %D%/packages/patches/doxygen-test.patch			\
   %D%/packages/patches/doxygen-1.8.17-runtests.patch		\
@@ -1029,7 +1027,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/inkscape-poppler-0.76.patch		\
   %D%/packages/patches/intltool-perl-compatibility.patch	\
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
-  %D%/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch	\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
   %D%/packages/patches/jacal-fix-texinfo.patch			\
   %D%/packages/patches/jamvm-arm.patch				\
@@ -1116,8 +1113,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/libmpeg2-global-symbol-test.patch	\
   %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
   %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
-  %D%/packages/patches/libreoffice-icu.patch			\
-  %D%/packages/patches/libreoffice-glm.patch			\
   %D%/packages/patches/libseccomp-open-aarch64.patch		\
   %D%/packages/patches/libsndfile-armhf-type-checks.patch	\
   %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch	\
@@ -1353,6 +1348,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qemu-CVE-2020-7039.patch			\
   %D%/packages/patches/qemu-CVE-2020-7211.patch			\
   %D%/packages/patches/qemu-fix-documentation-build-failure.patch	\
+  %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
   %D%/packages/patches/qt4-ldflags.patch			\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
   %D%/packages/patches/qtscript-disable-tests.patch		\
@@ -1370,6 +1366,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/readline-link-ncurses.patch		\
   %D%/packages/patches/readline-6.2-CVE-2014-2524.patch		\
   %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch	\
+  %D%/packages/patches/reprotest-support-guix.patch		\
   %D%/packages/patches/ri-li-modernize_cpp.patch		\
   %D%/packages/patches/ripperx-missing-file.patch		\
   %D%/packages/patches/rpcbind-CVE-2017-8779.patch		\
@@ -1385,6 +1382,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/rust-bootstrap-stage0-test.patch		\
   %D%/packages/patches/rust-coresimd-doctest.patch		\
   %D%/packages/patches/rust-reproducible-builds.patch		 \
+  %D%/packages/patches/rust-openssl-sys-no-vendor.patch	\
   %D%/packages/patches/rxvt-unicode-escape-sequences.patch	\
   %D%/packages/patches/sbcl-graph-asdf-definitions.patch	\
   %D%/packages/patches/scalapack-blacs-mpi-deprecations.patch	\
diff --git a/gnu/machine.scm b/gnu/machine.scm
index bdd92d9592..434d78ab41 100644
--- a/gnu/machine.scm
+++ b/gnu/machine.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 David Thompson <davet@gnu.org>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/machine/digital-ocean.scm b/gnu/machine/digital-ocean.scm
index 6f7cf8fb30..1a91a3a49b 100644
--- a/gnu/machine/digital-ocean.scm
+++ b/gnu/machine/digital-ocean.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index d6ce1253a4..6374373e22 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 878d9ad307..af39676d57 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -25,7 +25,7 @@
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
@@ -451,7 +451,7 @@ hostname.")
 (define-public shadow
   (package
     (name "shadow")
-    (version "4.8")
+    (version "4.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -459,7 +459,7 @@ hostname.")
                     "download/" version "/shadow-" version ".tar.xz"))
               (sha256
                (base32
-                "0r5c1p8mfwhw11gb6mjsx1k7d4c32dxai7yss8n5pwy1p61ndd34"))))
+                "0qmfq50sdhz6xilgxvinblll8j2iqfl7hwk45bq744y4plq4dbd3"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Assume System V `setpgrp (void)', which is the default on GNU
@@ -771,14 +771,14 @@ connection alive.")
                                       bind-release-version)))
     (package
       (name "isc-dhcp")
-      (version "4.4.1")
+      (version "4.4.2")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://ftp.isc.org/isc/dhcp/"
                                     version "/dhcp-" version ".tar.gz"))
                 (sha256
                  (base32
-                  "025nfqx4zwdgv4b3rkw26ihcj312vir08jk6yi57ndmb4a4m08ia"))))
+                  "08a5003zdxgl41b29zjkxa92h2i40zyjgxg0npvnhpkfl5jcsz0s"))))
       (build-system gnu-build-system)
       (arguments
        `(#:parallel-build? #f
@@ -787,17 +787,6 @@ connection alive.")
          (modify-phases %standard-phases
            (add-after 'unpack 'replace-bundled-bind
              (lambda* (#:key inputs native-inputs #:allow-other-keys)
-               ;; XXX TODO: Remove the following invocation of 'patch' when
-               ;; isc-dhcp is updated.  It should be needed only for 4.4.1.
-               (let ((patch (string-append (assoc-ref (or native-inputs inputs)
-                                                      "patch")
-                                           "/bin/patch"))
-                     (the-patch (assoc-ref (or native-inputs inputs)
-                                           "fixes-for-newer-bind.patch")))
-                 (format #t "applying '~a'...~%" the-patch)
-                 (invoke patch "--force" "--no-backup-if-mismatch"
-                         "-p1" "--input" the-patch))
-
                (delete-file "bind/bind.tar.gz")
                (copy-file (assoc-ref inputs "bind-source-tarball")
                           "bind/bind.tar.gz")
@@ -885,20 +874,14 @@ connection alive.")
 
       (native-inputs
        `(("perl" ,perl)
-         ("file" ,file)
-
-         ;; XXX TODO: Remove the following patch, and also the 'patch'
-         ;; program, when isc-dhcp is updated.
-         ("fixes-for-newer-bind.patch"
-          ,(search-patch "isc-dhcp-4.4.1-fixes-for-newer-bind.patch"))
-         ("patch" ,patch)))
+         ("file" ,file)))
 
       (inputs `(("inetutils" ,inetutils)
                 ("net-tools" ,net-tools)
                 ("iproute" ,iproute)
 
-                ;; XXX isc-dhcp bundles a copy of bind that has security
-                ;; flaws, so we use a newer version.
+                ;; isc-dhcp bundles a copy of BIND, which has proved vulnerable
+                ;; in the past.  Use a BIND-VERSION of our choosing instead.
                 ("bind-source-tarball"
                  ,(origin
                     (method url-fetch)
@@ -1588,7 +1571,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
 (define-public acpica
   (package
     (name "acpica")
-    (version "20191213")
+    (version "20200110")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1596,7 +1579,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1106d5b7q8jlgc2z0gz83jdah1yml4fz5z0jjcs7a52pv00c9am8"))))
+                "1hb4g6r7w8s4bhlkk36fmb4qxghnrwvad7f18cpn6zz0b4sjs7za"))))
     (build-system gnu-build-system)
     (native-inputs `(("flex" ,flex)
                      ("bison" ,bison)))
@@ -1622,14 +1605,13 @@ development, not the kernel implementation of ACPI.")
 (define-public s-tui
   (package
     (name "s-tui")
-    (version "0.8.3")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "s-tui" version))
        (sha256
-        (base32
-         "00lsh2v4i8rwfyjyxx5lijd6rnk9smcfffhzg5sv94ijpcnh216m"))))
+        (base32 "0r5yhlsi5xiy7ii1w4kqkaxz9069v5bbfwi3x3xnxhk51yjfgr8n"))))
     (build-system python-build-system)
     (inputs
      `(("python-psutil" ,python-psutil)
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 77db0ac9fc..b68f2137be 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -154,3 +155,41 @@ For application developers, language bindings are included for C, C++ and
 Python as well as GUI widgets for GTK and Qt.")
     (home-page "https://github.com/mchehab/zbar")
     (license license:lgpl2.1+)))
+
+(define-public qrcodegen-cpp
+  ;; Currently this project's installation mechanism only exists as a GitHub
+  ;; pull request, so we build from a recent commit that the proposed patch
+  ;; applies to.
+  (let ((commit "6ea933f1596d818bd21e9a6b8d2e851fb8b4bcf1")
+        (revision "0"))
+    (package
+      (name "qrcodegen-cpp")
+      (version (git-version "1.5.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/nayuki/QR-Code-generator.git")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (patches (search-patches "qrcodegen-cpp-make-install.patch"))
+                (sha256
+                 (base32
+                  "19fcwqmfk2n9p2n01dv2j4x2y2mqip0j1wbmfbxjp34rqkjwcwxm"))))
+      (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
+           (delete 'configure) ; No ./configure script
+           ;; Only build the C++ variant.
+           (add-after 'unpack 'chdir
+             (lambda _
+               (chdir "cpp")
+               #t)))))
+      (synopsis "QR Code generator library")
+      (description "qrcodegen-cpp is a QR code generator library in C++.  The
+project also offers Java, Javascript, Python, C, and Rust implementations.")
+      (home-page "https://www.nayuki.io/page/qr-code-generator-library")
+      (license license:expat))))
diff --git a/gnu/packages/antivirus.scm b/gnu/packages/antivirus.scm
index 397b94301d..dc4cc111e1 100644
--- a/gnu/packages/antivirus.scm
+++ b/gnu/packages/antivirus.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -44,14 +44,14 @@
 (define-public clamav
   (package
     (name "clamav")
-    (version "0.102.1")
+    (version "0.102.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.clamav.net/downloads/production/"
                                   "clamav-" version ".tar.gz"))
               (sha256
                (base32
-                "1mpdgn3isz26hd1j6p8lcb76v8hjs54k1wb655rnil4hv78aig8d"))
+                "1lq7r6r2yl8pp3fkn32b0bsmbbl9pg90kpvhsa2clad3xg0drz49"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 84a65b8492..c00244c003 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -434,7 +434,7 @@ rdiff-backup is easy to use and settings have sensible defaults.")
 (define-public rsnapshot
   (package
     (name "rsnapshot")
-    (version "1.4.2")
+    (version "1.4.3")
     (source
      (origin
        (method url-fetch)
@@ -442,8 +442,7 @@ rdiff-backup is easy to use and settings have sensible defaults.")
              "https://github.com/rsnapshot/rsnapshot/releases/download/"
              version "/rsnapshot-" version ".tar.gz"))
        (sha256
-        (base32
-         "05jfy99a0xs6lvsjfp3wz21z0myqhmwl2grn3jr9clijbg282ah4"))))
+        (base32 "1lavqmmsf53pim0nvming7fkng6p0nk2a51k2c2jdq0l7snpl31b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -455,6 +454,10 @@ rdiff-backup is easy to use and settings have sensible defaults.")
                             "t/backup_exec/conf/backup_exec.conf")
                (("/bin/true") (which "true"))
                (("/bin/false") (which "false")))
+
+             ;; Disable a test that tries to connect to localhost on port 22.
+             (delete-file "t/ssh_args/ssh_args.t.in")
+
              (invoke "make" "test"))))))
     (inputs
      `(("perl" ,perl)
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index c1da8ac106..a6e0c5a1e6 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -1543,7 +1543,7 @@ expressed genes in DNA microarray experiments.")
      `(("r-codetools" ,r-codetools)
        ("r-graph" ,r-graph)
        ("r-xml" ,r-xml)))
-    (home-page "http://cran.r-project.org/web/packages/CodeDepends")
+    (home-page "https://cran.r-project.org/web/packages/CodeDepends")
     (synopsis "Analysis of R code for reproducible research and code comprehension")
     (description
      "This package provides tools for analyzing R expressions or blocks of
@@ -2455,7 +2455,7 @@ gene and isoform level using RNA-seq data")
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://r-forge.r-project.org/projects/rsymphony")
+    (home-page "https://r-forge.r-project.org/projects/rsymphony")
     (synopsis "Symphony integer linear programming solver in R")
     (description
      "This package was derived from Rsymphony.  The package provides an R
@@ -7224,7 +7224,7 @@ access.")
        ("r-s4vectors" ,r-s4vectors)
        ("r-summarizedexperiment" ,r-summarizedexperiment)
        ("r-tidyr" ,r-tidyr)))
-    (home-page "http://waldronlab.io/MultiAssayExperiment/")
+    (home-page "https://waldronlab.io/MultiAssayExperiment/")
     (synopsis "Integration of multi-omics experiments in Bioconductor")
     (description
      "MultiAssayExperiment harmonizes data management of multiple assays
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b7b80cec02..065555b37b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
@@ -4733,7 +4733,17 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
                (base32
                 "1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i"))))
     (build-system python-build-system)
-    (arguments `(#:python ,python-2)) ; pbcore requires Python 2.7
+    (arguments
+     `(#:python ,python-2               ;pbcore < 2.0 requires Python 2.7
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'remove-sphinx-dependency
+                    (lambda _
+                      ;; Sphinx is only required for documentation tests, which
+                      ;; we do not run; furthermore it depends on python2-sphinx
+                      ;; which is no longer maintained.
+                      (substitute* "requirements-dev.txt"
+                        (("^sphinx") ""))
+                      #t)))))
     (propagated-inputs
      `(("python-cython" ,python2-cython)
        ("python-numpy" ,python2-numpy)
@@ -4741,7 +4751,6 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
        ("python-h5py" ,python2-h5py)))
     (native-inputs
      `(("python-nose" ,python2-nose)
-       ("python-sphinx" ,python2-sphinx)
        ("python-pyxb" ,python2-pyxb)))
     (home-page "https://pacificbiosciences.github.io/pbcore/")
     (synopsis "Library for reading and writing PacBio data files")
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index 16a08bde44..902e5ec6ff 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -304,14 +304,14 @@ signals and slots system.")
 (define-public mdds
   (package
     (name "mdds")
-    (version "1.4.3")
+    (version "1.5.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
                    "http://kohei.us/files/mdds/src/mdds-" version ".tar.bz2"))
              (sha256
               (base32
-               "10cw6irdm6d15nxnys2v5akp8yz52qijpcjvw0frwq7nz5d3vki5"))))
+               "03b8i43pw4m767mm0cnbi77x7qhpkzpi9b1f6dpp4cmyszmnsk8l"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("boost" ,boost))) ; inclusion of header files
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 749bcc7831..6c809c7d7c 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -2174,6 +2174,32 @@ JSON APIs with Behave.")
 (define-public python2-rednose
   (package-with-python2 python-rednose))
 
+(define-public python-nose-random
+  (package
+    (name "python-nose-random")
+    (version "1.0.0")
+    (source
+     (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/fzumstein/nose-random")
+            (commit version)))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "1dvip61r2frjv35mv6mmfjc07402z73pjbndfp3mhxyjn2zhksw2"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-nose" ,python-nose)))
+    (home-page "https://github.com/fzumstein/nose-random")
+    (synopsis "Nose plugin to facilitate randomized unit testing with
+Python")
+    (description "Python nose-random is designed to facilitate
+Monte-Carlo style unit testing.  The idea is to improve testing by
+running your code against a large number of randomly generated input
+scenarios.")
+    (license license:expat)))
+
 (define-public python-nose-randomly
   (package
     (name "python-nose-randomly")
diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm
new file mode 100644
index 0000000000..2034ca942a
--- /dev/null
+++ b/gnu/packages/chicken.scm
@@ -0,0 +1,68 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;;
+;;; 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 chicken)
+  #:use-module (gnu packages)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (gnu packages commencement)
+  #:use-module ((guix licenses)
+                #:select (bsd-3)))
+
+(define-public chicken
+  (package
+    (name "chicken")
+    (version "5.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://code.call-cc.org/releases/"
+                                  version "/chicken-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jsbp3kp0134f318j3wpd1n85gf8qzh034fn198gvazsv2l024aw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-1))
+
+       ;; No `configure' script; run "make check" after "make install" as
+       ;; prescribed by README.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'install 'check
+           (assoc-ref %standard-phases 'check)))
+
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list "PLATFORM=linux"
+                            (string-append "PREFIX=" out)
+                            (string-append "VARDIR=" out "/var/lib")))
+
+       ;; Parallel builds are not supported, as noted in README.
+       #:parallel-build? #f))
+    (propagated-inputs `(("gcc-toolchain", gcc-toolchain)))
+    (home-page "http://www.call-cc.org/")
+    (synopsis "R5RS Scheme implementation that compiles native code via C")
+    (description
+     "CHICKEN is a compiler for the Scheme programming language.  CHICKEN
+produces portable and efficient C, supports almost all of the R5RS Scheme
+language standard, and includes many enhancements and extensions.")
+    (license bsd-3)))
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index ecded29abd..49ad8de84c 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -69,7 +69,8 @@
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match))
 
 (define %preserved-third-party-files
   '("base/third_party/cityhash" ;Expat
@@ -278,9 +279,9 @@ from forcing GEXP-PROMISE."
           (url "https://salsa.debian.org/chromium-team/chromium.git")
           (commit %debian-revision)))
     (file-name (git-file-name "debian-chromium-packaging"
-                              (if (string-prefix? "debian/" %debian-revision)
-                                  (cadr (string-split %debian-revision #\/))
-                                  (string-take %debian-revision 7))))
+                              (match (string-split %debian-revision #\/)
+                                ((_ revision) revision)
+                                (_ (string-take %debian-revision 7)))))
     (sha256
      (base32
       "1rbzxcwfp7v0c6rkvn9jl9by7p363cnbdyqazwiak1z03kmw3nkz"))))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index d5622f1216..5b3b5ae9f0 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -537,7 +537,7 @@ particularly easy to create complete web applications using httpuv alone.")
                (base32
                 "0lyvhnr6n57h3a89bvipii7x17nvfaycm9j5j50bfrlr48jv9ic8"))))
     (build-system r-build-system)
-    (home-page "http://arxiv.org/abs/1403.2805")
+    (home-page "https://arxiv.org/abs/1403.2805")
     (synopsis "Robust, high performance JSON parser and generator for R")
     (description
      "The jsonlite package provides a fast JSON parser and generator optimized
@@ -2645,7 +2645,7 @@ contexts.")
          "0v4ax1v8diw2w7fdhfzz1z0bwixkmcrc39ax3y116f399rc06qbs"))))
     (properties `((upstream-name . "SQUAREM")))
     (build-system r-build-system)
-    (home-page "http://www.jhsph.edu/agingandhealth/People/Faculty_personal_pages/Varadhan.html")
+    (home-page "https://coah.jhu.edu/people/Faculty_personal_Pages/Varadhan.html")
     (synopsis "Squared Extrapolation Methods for Accelerating EM-Like Monotone Algorithms")
     (description
      "This package provides algorithms for accelerating the convergence of
@@ -3994,7 +3994,7 @@ Markdown documents.")
        ("r-registry" ,r-registry)
        ("r-tsp" ,r-tsp)))
     (native-inputs `(("gfortran" ,gfortran)))
-    (home-page "http://s2.smu.edu/IDA/seriation/")
+    (home-page "https://s2.smu.edu/IDA/seriation/")
     (synopsis "Infrastructure for ordering objects using seriation")
     (description
      "This package provides infrastructure for seriation with an
@@ -5240,7 +5240,7 @@ regression and information measures are implemented.")
     (build-system r-build-system)
     (propagated-inputs
      `(("r-ttr" ,r-ttr)))
-    (home-page "http://cran.r-project.org/web/packages/smoother")
+    (home-page "https://cran.r-project.org/web/packages/smoother")
     (synopsis "Functions relating to the smoothing of numerical data")
     (description
      "This package provides a collection of methods for smoothing numerical
@@ -6248,7 +6248,7 @@ to help insert or delete content at a specific location in the document.")
        ("r-rcpp" ,r-rcpp)
        ("r-rcpparmadillo" ,r-rcpparmadillo)
        ("r-rjags" ,r-rjags)))
-    (home-page "http://www.r-bayesian-networks.org")
+    (home-page "https://r-bayesian-networks.org/")
     (synopsis "Modelling multivariate data with additive bayesian networks")
     (description
      "Bayesian network analysis is a form of probabilistic graphical models
@@ -8360,7 +8360,7 @@ correlation, censored, ordered and multivariate problems.")
        ("r-rlang" ,r-rlang)
        ("r-tibble" ,r-tibble)
        ("r-tidyselect" ,r-tidyselect)))
-    (home-page "http://mc-stan.org/bayesplot")
+    (home-page "https://mc-stan.org/bayesplot")
     (synopsis "Plotting for Bayesian models")
     (description
      "This package provides plotting functions for posterior analysis, model
@@ -14559,7 +14559,7 @@ analysis.")
     (inputs
      `(("libpng" ,libpng)
        ("zlib" ,zlib)))
-    (home-page "http://www.rforge.net/png/")
+    (home-page "https://www.rforge.net/png/")
     (synopsis "Read and write PNG images")
     (description
      "This package provides an easy and simple way to read, write and display
@@ -15443,7 +15443,7 @@ customize styles using a readable syntax.")
         (base32 "02p3612rpydk195n2qr77lp1j2w8zsw1ckkk98c8angm4r5q8dsc"))))
     (build-system r-build-system)
     (native-inputs `(("gfortran" ,gfortran)))
-    (home-page "http://www-stat.stanford.edu/~tibs/glasso")
+    (home-page "https://statweb.stanford.edu/~tibs/glasso/")
     (synopsis "Graphical Lasso: estimation of Gaussian graphical models")
     (description
      "This is a package for estimation of a sparse inverse covariance matrix
@@ -16363,7 +16363,7 @@ long-term reliability under stochastic load profiles.")
      `(("r-slam" ,r-slam)))
     (inputs
      `(("glpk" ,glpk)))
-    (home-page "http://R-Forge.R-project.org/projects/rglp/")
+    (home-page "https://r-forge.r-project.org/projects/rglp/")
     (synopsis "R interface to the GNU Linear Programming Kit")
     (description
      "This package provides an R interface to the GNU Linear Programming Kit,
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index a5f224f99e..f874a63f49 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,13 +27,17 @@
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages version-control))
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages xorg))
 
 ;;;
 ;;; Please: Try to add new module packages in alphabetic order.
@@ -136,7 +141,7 @@ Rust, using gimli.")
 (define-public rust-aho-corasick-0.7
   (package
     (name "rust-aho-corasick")
-    (version "0.7.6")
+    (version "0.7.8")
     (source
      (origin
        (method url-fetch)
@@ -145,11 +150,10 @@ Rust, using gimli.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0b8dh20fhdc59dhhnfi89n2bi80a8zbagzd5c122hf1vv2amxysq"))))
+         "048q5vr1qac4lf90z80lw8kcya6qmlxw857xhwxsssk832jdafkl"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-memchr" ,rust-memchr-2.2))
+     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2.2))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://github.com/BurntSushi/aho-corasick")
@@ -185,10 +189,29 @@ Rust, using gimli.")
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-derive" ,rust-serde-derive-1.0))))))
 
-(define-public rust-ansi-term-0.11
+(define-public rust-android-glue-0.2
+  (package
+    (name "rust-android-glue")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "android-glue" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "01y495x4i9vqkwmklwn2xk7sqg666az2axjcpkr4iwngdwi48100"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/tomaka/android-rs-glue")
+    (synopsis "Glue for the Android JNI")
+    (description "This package provides the glue for the Android JNI.")
+    (license license:expat)))
+
+(define-public rust-ansi-term-0.12
   (package
     (name "rust-ansi-term")
-    (version "0.11.0")
+    (version "0.12.1")
     (source
       (origin
         (method url-fetch)
@@ -196,12 +219,16 @@ Rust, using gimli.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
+          "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-serde-json" ,rust-serde-json-1.0))))
     (home-page "https://github.com/ogham/rust-ansi-term")
     (synopsis "Library for ANSI terminal colours and styles")
     (description
@@ -209,6 +236,24 @@ Rust, using gimli.")
 text or blue underlined text, on ANSI terminals.")
     (license license:expat)))
 
+(define-public rust-ansi-term-0.11
+  (package
+    (inherit rust-ansi-term-0.12)
+    (name "rust-ansi-term")
+    (version "0.11.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ansi_term" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-antidote-1.0
   (package
     (name "rust-antidote")
@@ -257,6 +302,22 @@ text or blue underlined text, on ANSI terminals.")
      "Approximate floating point equality comparisons and assertions.")
     (license license:asl2.0)))
 
+(define-public rust-approx-0.1
+  (package
+    (inherit rust-approx-0.3)
+    (name "rust-approx")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "approx" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "153awzwywmb61xg857b80l63b1x6hifx2pha7lxf6fck9qxwraq8"))))
+    (arguments '())))
+
 (define-public rust-arc-swap-0.3
   (package
     (name "rust-arc-swap")
@@ -277,7 +338,7 @@ text or blue underlined text, on ANSI terminals.")
        (("rust-crossbeam" ,rust-crossbeam-0.7)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
         ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-model" ,rust-model-0.1)
         ("rust-num-cpus" ,rust-num-cpus-1.10)
         ("rust-parking-lot" ,rust-parking-lot-0.8)
@@ -420,6 +481,26 @@ ArrayVec and ArrayString.")
      "ASCII-only equivalents to @code{char}, @code{str} and @code{String}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-assert-matches-1.3
+  (package
+    (name "rust-assert-matches")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "assert_matches" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1rar61v00gz2aniid0mylxcr4q98s6l77c3hvbszmg57kj10msvx"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/murarth/assert_matches")
+    (synopsis "Asserts that a value matches a pattern")
+    (description
+     "This package asserts that a value matches a pattern in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-atty-0.2
   (package
     (name "rust-atty")
@@ -444,8 +525,30 @@ ArrayVec and ArrayString.")
      "This package provides a simple interface for querying atty.")
     (license license:expat)))
 
+(define-public rust-autocfg-1.0
+  (package
+    (name "rust-autocfg")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "autocfg" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "17cv6pwb4q08s0ynpr4n8hv5299hcmhdgvdchzixfpw8y5qcgapq"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/cuviper/autocfg")
+    (synopsis
+     "Automatic cfg for Rust compiler features")
+    (description
+     "Automatic cfg for Rust compiler features.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-autocfg-0.1
   (package
+    (inherit rust-autocfg-1.0)
     (name "rust-autocfg")
     (version "0.1.7")
     (source
@@ -456,16 +559,41 @@ ArrayVec and ArrayString.")
         (sha256
          (base32
           "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"))))
+    (arguments '(#:skip-build? #t))))
+
+(define-public rust-average-0.9
+  (package
+    (name "rust-average")
+    (version "0.9.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "average" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1f8ya00bv6qki9m7b4lb3bn845rj473mx02qpm7wgy5qc1yp75xs"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
-    (home-page "https://github.com/cuviper/autocfg")
-    (synopsis "Automatic cfg for Rust compiler features")
-    (description "Rust library for build scripts to automatically configure
-code based on compiler support.  Code snippets are dynamically tested to see
-if the @code{rustc} will accept them, rather than hard-coding specific version
-support.")
-    (license (list license:asl2.0
-                   license:expat))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-conv" ,rust-conv-0.3)
+        ("rust-float-ord" ,rust-float-ord-0.2)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-big-array" ,rust-serde-big-array-0.1)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-quantiles" ,rust-quantiles-0.7)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-serde-json" ,rust-serde-json-1.0)
+        ("rust-streaming-stats" ,rust-streaming-stats-0.2))))
+    (home-page "https://github.com/vks/average")
+    (synopsis "Calculate statistics iteratively")
+    (description "This crate provides for calculating statistics iteratively
+in Rust.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-backtrace-0.3
   (package
@@ -639,6 +767,28 @@ and no more (caveat: black_box is still missing!).")
 that uses Serde for transforming structs into bytes and vice versa!")
     (license license:expat)))
 
+(define-public rust-bresenham-0.1
+  (package
+    (name "rust-bresenham")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bresenham" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mvg3zcyll0m3z79jwbg183ha4kb7bw06rd286ijwvgn4mi13hdz"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/mbr/bresenham-rs")
+    (synopsis
+     "Iterator-based integer-only implementation of Bresenham's line algorithm")
+    (description
+     "This package provides a fast, iterator-based integer-only implementation of
+Bresenham's line algorithm.")
+    (license license:expat)))
+
 (define-public rust-generator-0.6
   (package
     (name "rust-generator")
@@ -691,7 +841,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-clap" ,rust-clap-2)
         ("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-fxhash" ,rust-fxhash-0.2)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
@@ -785,6 +935,36 @@ behave like a set of bitflags.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-bitflags-0.8
+  (package
+    (inherit rust-bitflags-1)
+    (name "rust-bitflags")
+    (version "0.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bitflags" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1x5z8hmirpnapkx6sww8gkc6x0q8ppni0lbsigm3mrba5byfjw0k"))))))
+
+(define-public rust-bitflags-0.7
+  (package
+    (inherit rust-bitflags-1)
+    (name "rust-bitflags")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bitflags" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0v8hh6wdkpk9my8z8442g4hqrqf05h0qj53dsay6mv18lqvqklda"))))))
+
 (define-public rust-blake2-rfc-0.2
   (package
     (name "rust-blake2-rfc")
@@ -984,7 +1164,7 @@ BLAKE2bp hash functions.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-regex-automata" ,rust-regex-automata-0.1)
         ("rust-serde" ,rust-serde-1.0))
@@ -1141,7 +1321,7 @@ little-endian.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-ppv-lite86" ,rust-ppv-lite86-0.2)
         ("rust-stream-cipher" ,rust-stream-cipher-0.3))
        #:cargo-development-inputs
@@ -1399,27 +1579,30 @@ depending on a large number of #[cfg] parameters.  Structured like an
       (origin
         (method url-fetch)
         (uri (crate-uri "clang-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
           "0ls8zcqi5bmmrvrk3b6r1ym4wlivinbv590d2dvg2xn9f44mbpl1"))))
     (build-system cargo-build-system)
-    ;(arguments
-    ; `(#:phases
-    ;   (modify-phases %standard-phases
-    ;     (add-after 'unpack 'set-environmental-variable
-    ;       (lambda* (#:key inputs #:allow-other-keys)
-    ;         (let ((clang (assoc-ref inputs "libclang")))
-    ;           (setenv "LIBCLANG_PATH"
-    ;                   (string-append clang "/lib")))
-    ;         #t)))))
-    ;(inputs
-    ; `(("libclang" ,clang)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glob" ,rust-glob-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libloading" ,rust-libloading-0.5))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-environmental-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "libclang")))
+               (setenv "LIBCLANG_PATH"
+                       (string-append clang "/lib")))
+             #t)))))
+    (inputs
+     `(("libclang" ,clang)))
     (home-page "https://github.com/KyleMayes/clang-sys")
     (synopsis "Rust bindings for libclang")
     (description
      "This package provides Rust bindings for @code{libclang}.")
-    (properties '((hidden? . #t)))
     (license license:asl2.0)))
 
 (define-public rust-clang-sys-0.26
@@ -1434,7 +1617,20 @@ depending on a large number of #[cfg] parameters.  Structured like an
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1r50dwy5hj5gq07dn0qf8222d07qv0970ymx0j8n9779yayc3w3f"))))))
+          "1r50dwy5hj5gq07dn0qf8222d07qv0970ymx0j8n9779yayc3w3f"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-glob" ,rust-glob-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libloading" ,rust-libloading-0.5))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-environmental-variable
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((clang (assoc-ref inputs "libclang")))
+               (setenv "LIBCLANG_PATH"
+                       (string-append clang "/lib")))
+             #t)))))))
 
 (define-public rust-clap-2
   (package
@@ -1450,19 +1646,19 @@ depending on a large number of #[cfg] parameters.  Structured like an
           "1nf6ld3bims1n5vfzhkvcb55pdzh04bbhzf8nil5vvw05nxzarsh"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-ansi-term" ,rust-ansi-term-0.11)
         ("rust-atty" ,rust-atty-0.2)
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-clippy" ,rust-clippy-0.0)
         ("rust-strsim" ,rust-strsim-0.8)
+        ("rust-term-size" ,rust-term-size-0.3)
         ("rust-textwrap" ,rust-textwrap-0.11)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-vec-map" ,rust-vec-map-0.8)
-        ("rust-yaml-rust" ,rust-yaml-rust-0.4))
+        ("rust-yaml-rust" ,rust-yaml-rust-0.3))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-version-sync" ,rust-version-sync-0.8))))
     (home-page "https://clap.rs/")
@@ -1489,7 +1685,7 @@ Command Line Argument Parser.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-atty" ,rust-atty-0.2)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/mitsuhiko/clicolors-control")
@@ -1499,6 +1695,29 @@ Command Line Argument Parser.")
 colorization.")
     (license license:expat)))
 
+(define-public rust-clipboard-win-2.1
+  (package
+    (name "rust-clipboard-win")
+    (version "2.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clipboard-win" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0431sg4jhabrqf2dliiwhbx9hinb9z4qfcm6914lm5mb17ya5798"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests are for Windows.
+       #:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/DoumanAsh/clipboard-win")
+    (synopsis "Interact with Windows clipboard")
+    (description
+     "This package provides simple way to interact with Windows clipboard.")
+    (license license:expat)))
+
 (define-public rust-clippy-0.0
   (package
     (name "rust-clippy")
@@ -1603,6 +1822,26 @@ need compiler-rt intrinsics.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-compiler-error-0.1
+  (package
+    (name "rust-compiler-error")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "compiler_error" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0irh7c0gznk2k6mj3cmqw7x4pg59lppmy1y8d6k5xc926rnmz5zg"))))
+    (build-system cargo-build-system)
+    (arguments '(#:skip-build? #t))
+    (home-page "https://github.com/lu-zero/compiler_error")
+    (synopsis "Triggerable compiler error")
+    (description "This package provides a triggerable compiler error for Rust.")
+    (license license:expat)))
+
 (define-public rust-compiletest-rs-0.3
   (package
     (name "rust-compiletest-rs")
@@ -1641,6 +1880,27 @@ need compiler-rt intrinsics.")
 harness.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-compiletest-rs-0.2
+  (package
+    (inherit rust-compiletest-rs-0.3)
+    (name "rust-compiletest-rs")
+    (version "0.2.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "compiletest_rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0njz4shbhl1pvb6ngpi1wpz2gr5lf2dcha22lpdk995pzrwd6h97"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.3)
+        ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
+        ("rust-tempdir" ,rust-tempdir-0.3))))))
+
 (define-public rust-console-0.7
   (package
     (name "rust-console")
@@ -1661,7 +1921,7 @@ harness.")
        (("rust-atty" ,rust-atty-0.2)
         ("rust-clicolors-control" ,rust-clicolors-control-1.0)
         ("rust-encode-unicode" ,rust-encode-unicode-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-parking-lot" ,rust-parking-lot-0.8)
         ("rust-regex" ,rust-regex-1.1)
@@ -1722,6 +1982,34 @@ that logs panics to @code{console.error}.")
 It is inspired by the Linux kernel's @code{crypto_memneq}.")
     (license license:cc0)))
 
+(define-public rust-conv-0.3
+  (package
+    (name "rust-conv")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "conv" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "168j1npqrif1yqxbgbk0pdrx9shzhs5ylc5a4xw49b6hbxi11zvq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Package needs 'unicode' crate.
+       #:cargo-inputs
+       (("rust-custom-derive" ,rust-custom-derive-0.1))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.2)
+        ("rust-winapi" ,rust-winapi-0.2))))
+    (home-page "https://github.com/DanielKeep/rust-conv")
+    (synopsis "Conversion traits with more specific semantics")
+    (description
+     "This crate provides a number of conversion traits with more specific
+semantics than those provided by @code{as} or @code{From}/@code{Into}.")
+    (license license:expat)))
+
 (define-public rust-core-arch-0.1
   (package
     (name "rust-core-arch")
@@ -1854,7 +2142,7 @@ intrinsics.")
         ("rust-criterion-plot" ,rust-criterion-plot-0.3)
         ("rust-csv" ,rust-csv-1.1)
         ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand-core" ,rust-rand-core-0.5)
@@ -2032,7 +2320,13 @@ intrinsics.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "04rcpgjs6ns57vag8a3dzx26190dhbvy2l0p9n22b9p1yf64pr05"))))))
+         "04rcpgjs6ns57vag8a3dzx26190dhbvy2l0p9n22b9p1yf64pr05"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-crossbeam-epoch" ,rust-crossbeam-epoch-0.7)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-crossbeam-epoch-0.8
   (package
@@ -2054,7 +2348,7 @@ intrinsics.")
        (("rust-autocfg" ,rust-autocfg-0.1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-memoffset" ,rust-memoffset-0.5)
         ("rust-scopeguard" ,rust-scopeguard-1.0))
        #:cargo-development-inputs
@@ -2085,7 +2379,7 @@ intrinsics.")
        (("rust-arrayvec" ,rust-arrayvec-0.4)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-memoffset" ,rust-memoffset-0.2)
         ("rust-scopeguard" ,rust-scopeguard-0.3))
        #:cargo-development-inputs
@@ -2161,7 +2455,7 @@ intrinsics.")
        #:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-0.1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3))
+        ("rust-lazy-static" ,rust-lazy-static-1))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.6))))
     (home-page
@@ -2189,7 +2483,7 @@ intrinsics.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3))
+        ("rust-lazy-static" ,rust-lazy-static-1))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.4))))))
 
@@ -2250,6 +2544,32 @@ intrinsics.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-ctrlc-3.1
+  (package
+    (name "rust-ctrlc")
+    (version "3.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ctrlc" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zz8ad4bk28s111af5vy1c5kii4zw0cgh87ivzgj28f8nkcd5py7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.14)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/Detegr/rust-ctrlc")
+    (synopsis "Easy Ctrl-C handler for Rust projects")
+    (description
+     "This package provides an easy Ctrl-C handler for Rust projects.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
@@ -2285,6 +2605,31 @@ intrinsics.")
     (properties '((hidden? . #t)))
     (license license:expat)))
 
+(define-public rust-custom-derive-0.1
+  (package
+    (name "rust-custom-derive")
+    (version "0.1.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "custom_derive" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1f81bavw1wnykwh21hh4yyzigs6zl6f6pkk9p3car8kq95yfb2pg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-development-inputs
+       (("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))
+    (home-page
+     "https://github.com/DanielKeep/rust-custom-derive/tree/custom_derive-master")
+    (synopsis "Custom derivation macro for Rust")
+    (description
+     "This crate provides a macro that enables the use of custom @code{derive}
+attributes.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-data-encoding-2.1
   (package
     (name "rust-data-encoding")
@@ -2306,6 +2651,40 @@ intrinsics.")
 hexadecimal, base32, and base64.")
     (license license:expat)))
 
+(define-public rust-datetime-0.4
+  (package
+    (name "rust-datetime")
+    (version "0.4.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "datetime" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+        (("rust-iso8601" ,rust-iso8601-0.1)
+         ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-locale" ,rust-locale-0.2)
+         ("rust-num-traits" ,rust-num-traits-0.1)
+         ("rust-pad" ,rust-pad-0.1)
+         ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+         ("rust-winapi" ,rust-winapi-0.2))
+        #:cargo-development-inputs
+        (;("rust-regex" ,rust-regex-0.1)
+         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))
+    (home-page "https://github.com/rust-datetime/datetime")
+    (synopsis "Library for date and time formatting and arithmetic")
+    (description "This package provides a library for date and time formatting
+and arithmetic.")
+    (license license:expat)))
+
 (define-public rust-defmac-0.2
   (package
     (name "rust-defmac")
@@ -2594,6 +2973,27 @@ memory but not other memory.  This package provides a discard trait which allows
 for intentionally leaking memory")
     (license license:expat)))
 
+(define-public rust-dispatch-0.1
+  (package
+    (name "rust-dispatch")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dispatch" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "019nzy993hxaiazcdnayx3csv2iki34i535asw11ki96hakkrs84"))))
+    (build-system cargo-build-system)
+    (arguments '(#:tests? #f))  ; Tests only run on Mac.
+    (home-page "http://github.com/SSheldon/rust-dispatch")
+    (synopsis "Rust wrapper for Apple's Grand Central Dispatch")
+    (description "This package provides a Rust wrapper for Apple's Grand
+Central Dispatch.")
+    (license license:expat)))
+
 (define-public rust-doc-comment-0.3
   (package
     (name "rust-doc-comment")
@@ -2631,7 +3031,7 @@ from macros.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-strsim" ,rust-strsim-0.9))))
@@ -2640,6 +3040,27 @@ from macros.")
     (description "Command line argument parsing.")
     (license (list license:expat license:unlicense))))
 
+(define-public rust-downcast-rs-1.1
+  (package
+    (name "rust-downcast-rs")
+    (version "1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "downcast-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1xhs2qj02k9m4mm5fgh19y88850y9jsnwwlblf2ffc91gjs6xfjj"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/marcianx/downcast-rs")
+    (synopsis "Trait object downcasting support using only safe Rust")
+    (description
+     "Trait object downcasting support using only safe Rust.  It supports type
+parameters, associated types, and type constraints.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dtoa-0.4
   (package
     (name "rust-dtoa")
@@ -2706,6 +3127,35 @@ floating-point primitives to an @code{io::Write}.")
      "A library for running child processes.")
     (license license:expat)))
 
+(define-public rust-dwrote-0.9
+  (package
+    (name "rust-dwrote")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dwrote" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "03gzl5pd90nlkmwqmbmjmyz47h7wlblbqrwv5a29npnv0ag3dl8b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0)
+        ;("rust-wio" ,rust-wio-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/servo/dwrote-rs")
+    (synopsis "Lightweight binding to DirectWrite")
+    (description
+     "This package provides lightweight binding to DirectWrite.")
+    (license license:mpl2.0)))
+
 (define-public rust-either-1.5
   (package
     (name "rust-either")
@@ -2751,7 +3201,7 @@ floating-point primitives to an @code{io::Write}.")
        (("rust-ascii" ,rust-ascii-0.9)
         ("rust-clippy" ,rust-clippy-0.0))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3))))
+       (("rust-lazy-static" ,rust-lazy-static-1))))
     (home-page "https://github.com/tormol/encode_unicode")
     (synopsis
      "UTF-8 and UTF-16 support for char, u8 and u16")
@@ -3090,6 +3540,25 @@ is configured via an environment variable.")
        (("rust-log" ,rust-log-0.3)
         ("rust-regex" ,rust-regex-0.2))))))
 
+(define-public rust-env-logger-0.3
+  (package
+    (inherit rust-env-logger-0.7)
+    (name "rust-env-logger")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "env_logger" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0bvcjgkw4s3k1rd7glpflgc8s9a393zjd6jfdgvs8gjvwj0dgaqm"))))
+    (arguments
+     `(#:skip-build? #t     ; Cannot find dependent crates.
+       #:cargo-inputs
+       (;("rust-regex" ,rust-regex-0.1)
+        ("rust-log" ,rust-log-0.3))))))
+
 (define-public rust-envmnt-0.6
   (package
     (name "rust-envmnt")
@@ -3210,9 +3679,8 @@ is configured via an environment variable.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-backtrace" ,rust-backtrace-0.3))
-       #:cargo-development-inputs
-       (("rust-version-check" ,rust-version-check-0.9))))
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-version-check" ,rust-version-check-0.1))))
     (home-page "https://github.com/rust-lang-nursery/error-chain")
     (synopsis "Yet another error boilerplate library")
     (description
@@ -3365,7 +3833,7 @@ representation.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/gimli-rs/findshlibs")
     (synopsis "Find the set of shared libraries loaded in the current process")
@@ -3412,7 +3880,7 @@ cross platform API.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-derive" ,rust-serde-derive-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0)
@@ -3488,6 +3956,29 @@ Reader/Writer streams.  Contains bindings for zlib, deflate, and gzip-based
 streams.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-float-ord-0.2
+  (package
+    (name "rust-float-ord")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "float-ord" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0kin50365sr3spnbscq43lksymybi99ai9rkqdw90m6vixhlibbv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.3))))
+    (home-page "https://github.com/notriddle/rust-float-ord")
+    (synopsis "Total ordering for floating-point numbers")
+    (description
+     "This package provides a total ordering for floating-point numbers.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-fnv-1.0
   (package
     (name "rust-fnv")
@@ -3726,6 +4217,31 @@ featuring zero allocations, composability, and iterator-like interfaces.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-futures-channel-0.3
+  (package
+    (name "rust-futures-channel")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-channel" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11lvk749n61654ad40xn751gmxzwb697nwh36s5gs0ni2z59ibpw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3))))
+    (home-page  "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis "Channels for asynchronous communication using futures-rs")
+    (description
+     "Channels for asynchronous communication using futures-rs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-channel-preview-0.3
   (package
     (name "rust-futures-channel-preview")
@@ -3751,6 +4267,27 @@ featuring zero allocations, composability, and iterator-like interfaces.")
      "Channels for asynchronous communication using futures-rs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-core-0.3
+  (package
+    (name "rust-futures-core")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-core" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rh8q6pg08dizk5hwksvjgvkw26s3sr3b199nggv3ypyg914qmkr"))))
+    (build-system cargo-build-system)
+    (arguments '(#:tests? #f))
+    (home-page "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis "Core traits and types in for the `futures` library")
+    (description "This package provides the core traits and types in for the
+@code{futures} library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-core-preview-0.3
   (package
     (name "rust-futures-core-preview")
@@ -3785,12 +4322,15 @@ featuring zero allocations, composability, and iterator-like interfaces.")
          (base32
           "1r32456gpblzfvnkf60545v8acqk7gh5zhyhi1jn669k9gicv45b"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-num-cpus" ,rust-num-cpus-1.11))))
     (home-page "https://github.com/rust-lang-nursery/futures-rs")
     (synopsis "Implementation of thread pools which hand out futures")
     (description
      "An implementation of thread pools which hand out futures to the results of
 the computation on the threads themselves.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -3824,6 +4364,28 @@ the computation on the threads themselves.")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-io-0.3
+  (package
+    (name "rust-futures-io")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-io" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1zxm41fmkrb0r39ajk3rr9invcd5bdwlafazn8m9aw4y49ymfxp6"))))
+    (build-system cargo-build-system)
+    (home-page "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis
+     "`AsyncRead` and `AsyncWrite` traits for the futures-rs library")
+    (description
+     "This package provides the @code{AsyncRead} and @code{AsyncWrite} traits
+for the futures-rs library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-io-preview-0.3
   (package
     (name "rust-futures-io-preview")
@@ -3874,6 +4436,26 @@ library.")
 @code{Future}s at once and handling the first one to complete.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-sink-0.3
+  (package
+    (name "rust-futures-sink")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-sink" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "05iwskzxq3yqvxv9l1kqnd7kkmp0dwc39fnvwrcjsg76z8zf66qp"))))
+    (build-system cargo-build-system)
+    (home-page "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis "Asynchronous `Sink` trait for the futures-rs library")
+    (description "This package provides the asynchronous @code{Sink} trait for
+the futures-rs library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-sink-preview-0.3
   (package
     (name "rust-futures-sink-preview")
@@ -3896,6 +4478,26 @@ futures-rs library.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-futures-task-0.3
+  (package
+    (name "rust-futures-task")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "futures-task" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1yg5d7b3z58mhqbrax5a0qdsfvzfclwyqvw5k3i41x4wnbb55bhb"))))
+    (build-system cargo-build-system)
+    (arguments '(#:tests? #f))
+    (home-page "https://rust-lang-nursery.github.io/futures-rs")
+    (synopsis "Tools for working with tasks")
+    (description "Tools for working with tasks.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-futures-util-preview-0.3
   (package
     (name "rust-futures-util-preview")
@@ -4077,7 +4679,7 @@ archive to be linked into Rustcode.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-stdweb" ,rust-stdweb-0.4)
@@ -4143,8 +4745,7 @@ DWARF debugging format.")
          "1i0fgsr91r97hsjbgqnymkcyiyg0057m7m04116k3vmyqpvrwlbp"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libgit2-sys" ,rust-libgit2-sys-0.10)
@@ -4159,6 +4760,12 @@ DWARF debugging format.")
         ("rust-tempfile" ,rust-tempfile-3.1)
         ("rust-thread-id" ,rust-thread-id-3.3)
         ("rust-time" ,rust-time-0.1))))
+    (native-inputs
+     `(("libgit2" ,libgit2)
+       ("libssh2" ,libssh2)
+       ("openssl" ,openssl)
+       ("pkg-config" ,pkg-config)
+       ("zlib" ,zlib)))
     (home-page "https://github.com/rust-lang/git2-rs")
     (synopsis "Rust bindings to libgit2")
     (description
@@ -4182,8 +4789,7 @@ reading and writing git repositories.")
         (base32
          "0cayf5w7wkvclvs8brbi7lyfxbdklwls9s49mpf2brl655yjwjwj"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libgit2-sys" ,rust-libgit2-sys-0.8)
@@ -4272,6 +4878,25 @@ the process of matching one or more glob patterns against a single candidate
 path simultaneously, and returning all of the globs that matched.")
     (license (list license:expat license:unlicense))))
 
+(define-public rust-glutin-emscripten-sys-0.1
+  (package
+    (name "rust-glutin-emscripten-sys")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "glutin_emscripten_sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ix0jmm8p5if4qarzdfl5mz9rbq4hhgqarakb3bzwvyz13dkynr4"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/tomaka/glutin")
+    (synopsis "Emscripten bindings for glutin")
+    (description "The emscripten bindings for glutin.")
+    (license license:asl2.0)))
+
 (define-public rust-goblin-0.0
   (package
     (name "rust-goblin")
@@ -4351,7 +4976,7 @@ loading crate.")
        (("rust-atty" ,rust-atty-0.2)
         ("rust-bstr" ,rust-bstr-0.2)
         ("rust-globset" ,rust-globset-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-same-file" ,rust-same-file-1.0)
@@ -4368,7 +4993,7 @@ loading crate.")
 (define-public rust-grep-matcher-0.1
   (package
     (name "rust-grep-matcher")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -4377,11 +5002,10 @@ loading crate.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "03j26zygfgwyam66bl5g922gimrvp4yyzl8qvaykyklnf247bl3r"))))
+         "113lafx3abrr96ahpz6yn905ian1w3qsr5hijbb909p2j0xgmhkm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-memchr" ,rust-memchr-2.2))
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-1.1))))
@@ -4457,7 +5081,7 @@ standard printing of search results, similar to grep itself.")
 (define-public rust-grep-regex-0.1
   (package
     (name "rust-grep-regex")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
@@ -4466,11 +5090,10 @@ standard printing of search results, similar to grep itself.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lbb8837gzy25n706mnidaps4jl63ym679zraj8nfy5g02zbz549"))))
+         "090k1sbn4jq680dmgp1jyqs7f9dzn198k0806kc8f40jcjazd88n"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-aho-corasick" ,rust-aho-corasick-0.7)
         ("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-log" ,rust-log-0.4)
@@ -4602,7 +5225,7 @@ the template engine that renders the official Rust website")
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
         ("rust-serde" ,rust-serde-1.0))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.5)
         ("rust-rayon" ,rust-rayon-1.1)
         ("rust-rustc-hash" ,rust-rustc-hash-1.0)
@@ -4704,6 +5327,33 @@ consistent, and reasonably well performing.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-hermit-abi-0.1
+  (package
+    (name "rust-hermit-abi")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "hermit-abi" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+         "0wippj5nkw9q5yyyaqpdrgdhag3l3nbrwja7149cwn7ii1nnbwpg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
+    (home-page "https://github.com/hermitcore/rusty-hermit")
+    (synopsis "Small interface to call functions from RustyHermit")
+    (description
+     "Hermit-abi is small interface to call functions from the unikernel RustyHermit.
+It is used to build the target x86_64-unknown-hermit.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hex-0.4
   (package
     (name "rust-hex")
@@ -5008,7 +5658,7 @@ SystemTime}}.")
 (define-public rust-ignore-0.4
   (package
     (name "rust-ignore")
-    (version "0.4.7")
+    (version "0.4.11")
     (source
      (origin
        (method url-fetch)
@@ -5017,23 +5667,19 @@ SystemTime}}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "00mhksl41dnlsjqmka8c5a0m4spwm70ilm1qd9rngwq552hpzicd"))))
+         "07js5k91v870b2i5rl5shg37214yzwl0p6fjqy06y0v97gyawbaj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.3)
+     `(#:cargo-inputs
+       (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
         ("rust-globset" ,rust-globset-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-same-file" ,rust-same-file-1.0)
-        ("rust-thread-local" ,rust-thread-local-0.3)
-        ("rust-walkdir" ,rust-walkdir-2.2)
-        ("rust-winapi-util" ,rust-winapi-util-0.1))
-       #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3.0))))
+        ("rust-thread-local" ,rust-thread-local-1.0)
+        ("rust-walkdir" ,rust-walkdir-2.2))))
     (home-page "https://github.com/BurntSushi/ripgrep/tree/master/ignore")
     (synopsis "Efficiently match ignore files such as .gitignore")
     (description
@@ -5062,7 +5708,7 @@ ignore files such as .gitignore against file paths.")
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1.0)
         ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-serde-test" ,rust-serde-test-1.0))))
@@ -5105,7 +5751,7 @@ renamed to indexmap.")
         ("rust-console" ,rust-console-0.7)
         ("rust-difference" ,rust-difference-2.0)
         ("rust-failure" ,rust-failure-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-pest" ,rust-pest-2.1)
         ("rust-pest-derive" ,rust-pest-derive-2.1)
         ("rust-ron" ,rust-ron-0.4)
@@ -5167,6 +5813,29 @@ immutable interval tree.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-iso8601-0.1
+  (package
+    (name "rust-iso8601")
+    (version "0.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "iso8601" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xy48qyfmirslaj4dy6n4g8b564jap3cjiql35fmj5vgii7ldp0i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clippy" ,rust-clippy-0.0)
+        ("rust-nom" ,rust-nom-1.2))))
+    (home-page "https://github.com/badboy/iso8601")
+    (synopsis "Parsing ISO8601 dates using nom")
+    (description "Parsing ISO8601 dates using nom.")
+    (license license:expat)))
+
 (define-public rust-itertools-0.8
   (package
     (name "rust-itertools")
@@ -5197,6 +5866,26 @@ immutable interval tree.")
      "Extra iterator adaptors, iterator methods, free functions, and macros.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-itertools-0.7
+  (package
+    (inherit rust-itertools-0.8)
+    (name "rust-itertools")
+    (version "0.7.11")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "itertools" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "03cpsj26xmyamcalclqzr1i700vwx8hnbgxbpjvs354f8mnr8iqd"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-either" ,rust-either-1.5))
+       #:cargo-development-inputs
+       (("rust-permutohedron" ,rust-permutohedron-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.5))))))
+
 (define-public rust-itertools-num-0.1
   (package
     (name "rust-itertools-num")
@@ -5240,7 +5929,6 @@ and functions.")
          (base32
           "0zvg2d9qv3avhf3d8ggglh6fdyw8kkwqg3r4622ly5yhxnvnc4jh"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/dtolnay/itoa")
     (synopsis "Fast functions for printing integer primitives")
     (description "This crate provides fast functions for printing integer
@@ -5248,6 +5936,21 @@ primitives to an @code{io::Write}.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-itoa-0.3
+  (package
+    (inherit rust-itoa-0.4)
+    (name "rust-itoa")
+    (version "0.3.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "itoa" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "136vwi6l2k1vrlvfx49lhficj813pk88xrcx1q3axqh1mwms6943"))))))
+
 (define-public rust-itoa-0.1
  (package
    (inherit rust-itoa-0.4)
@@ -5277,8 +5980,7 @@ primitives to an @code{io::Write}.")
          "1q2w80v8p2pbfm8ayhjs6zi11a1hp4535z4ck8kg872z8ldnrc37"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2))
        #:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.1)
@@ -5432,6 +6134,26 @@ friction with idiomatic Rust structs to ease interopability.")
 kernel32.")
     (license license:expat)))
 
+(define-public rust-khronos-api-3
+  (package
+    (name "rust-khronos-api")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "khronos-api" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p0xj5mlbagqyvvnv8wmv3cr7l9y1m153888pxqwg3vk3mg5inz2"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/brendanzab/gl-rs/")
+    (synopsis "Khronos XML API Registry")
+    (description
+     "The Khronos XML API Registry, exposed as byte string constants.")
+    (license license:asl2.0)))
+
 (define-public rust-language-tags-0.2
   (package
     (name "rust-language-tags")
@@ -5474,8 +6196,7 @@ language tags.")
           "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-spin" ,rust-spin-0.5))
+     `(#:cargo-inputs (("rust-spin" ,rust-spin-0.5))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page  "https://github.com/rust-lang-nursery/lazy-static.rs")
@@ -5489,6 +6210,8 @@ requires non-const function calls to be computed.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-lazy-static-1 rust-lazy-static-1.4)
+
 (define-public rust-lazy-static-1.3
   (package
     (inherit rust-lazy-static-1.4)
@@ -5503,8 +6226,7 @@ requires non-const function calls to be computed.")
          (base32
           "052ac27w189hrf1j3hz7sga46rp84zl2hqnzyihxv78mgzr2jmxw"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs (("rust-spin" ,rust-spin-0.5))))))
+     `(#:cargo-inputs (("rust-spin" ,rust-spin-0.5))))))
 
 (define-public rust-lazycell-1.2
   (package
@@ -5648,12 +6370,13 @@ values of all the exported APIs match the platform that libc is compiled for.")
       (origin
         (method url-fetch)
         (uri (crate-uri "libgit2-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0y2mibmx7wy91s2kmb2gfb29mrqlqaxpy5wcwr8s1lwws7b9w5sc"))))
-    (arguments '())
-    (properties '((hidden? . #t)))))
+          "0y2mibmx7wy91s2kmb2gfb29mrqlqaxpy5wcwr8s1lwws7b9w5sc"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin (delete-file-recursively "libgit2") #t))))))
 
 (define-public rust-libgit2-sys-0.7
   (package
@@ -5685,11 +6408,9 @@ values of all the exported APIs match the platform that libc is compiled for.")
           "0lyply8rcqc8agajzxs7bq6ivba9dnn1i68kgb9z2flnfjh13cgj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-cc" ,rust-cc-1.0))))
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3)
+        ("rust-cc" ,rust-cc-1.0))))
     (home-page "https://github.com/nagisa/rust_libloading/")
     (synopsis "Rust library for loading dynamic libraries")
     (description
@@ -5700,6 +6421,45 @@ allows loading dynamic libraries (also known as shared libraries) as well as use
 functions and static variables these libraries contain.")
     (license license:isc)))
 
+(define-public rust-libm-0.2
+  (package
+    (name "rust-libm")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libm" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand" ,rust-rand-0.6))
+       #:cargo-development-inputs
+       (("rust-no-panic" ,rust-no-panic-0.1))))
+    (home-page "https://github.com/rust-lang/libm")
+    (synopsis "Libm in pure Rust")
+    (description "This package provides an implementation of libm in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-libm-0.1
+  (package
+    (inherit rust-libm-0.2)
+    (name "rust-libm")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libm" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "16pc0gx4gkg0q2s1ssq8268brn14j8344623vwhadmivc4lsmivz"))))))
+
 (define-public rust-libssh2-sys-0.2
   (package
     (name "rust-libssh2-sys")
@@ -5717,8 +6477,7 @@ functions and static variables these libraries contain.")
          '(begin (delete-file-recursively "libssh2") #t))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t ; it wants rust-openssl-src
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-libz-sys" ,rust-libz-sys-1.0)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
@@ -5745,6 +6504,28 @@ functions and static variables these libraries contain.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-locale-0.2
+  (package
+    (name "rust-locale")
+    (version "0.2.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "locale" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1z87wc7z6889x1pqlrwjw8f1crshzi15q5m102lqs8y0m69f9nsz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/rust-locale/rust-locale")
+    (synopsis "Library for basic localisation")
+    (description
+     "This package provides a library for basic localisation.")
+    (license license:expat)))
+
 (define-public rust-lock-api-0.3
   (package
     (name "rust-lock-api")
@@ -5908,6 +6689,26 @@ implementation of LZMA and xz stream encoding/decoding.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-lzw-0.10
+  (package
+    (name "rust-lzw")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lzw" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1170dfskhzlh8h2bm333811hykjvpypgnvxyhhm1rllyi2xpr53x"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/nwin/lzw.git")
+    (synopsis "LZW compression and decompression")
+    (description
+     "This package provides LZW compression and decompression.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mac-0.1
   (package
     (name "rust-mac")
@@ -5929,6 +6730,48 @@ implementation of LZMA and xz stream encoding/decoding.")
      "This package provides a collection of great and ubiqutitous macros.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-make-cmd-0.1
+  (package
+    (name "rust-make-cmd")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "make-cmd" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ly0lc5p1a0qdiqnh19ly3snb9q83sjbbb1njvh8a5xgx3xqmjm8"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/mneumann/make-cmd-rs")
+    (synopsis "Enable build.rs scripts to invoke gnu_make")
+    (description "This package enables build.rs scripts to invoke gnu_make
+platform-independently.")
+    (license license:expat)))
+
+(define-public rust-malloc-buf-0.0
+ (package
+   (name "rust-malloc-buf")
+   (version "0.0.6")
+   (source
+    (origin
+      (method url-fetch)
+      (uri (crate-uri "malloc-buf" version))
+      (file-name
+       (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32
+        "1jqr77j89pwszv51fmnknzvd53i1nkmcr8rjrvcxhm4dx1zr1fv2"))))
+   (build-system cargo-build-system)
+   (arguments
+    `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+   (home-page "https://github.com/SSheldon/malloc_buf")
+   (synopsis "Structs for handling malloc'd memory passed to Rust")
+   (description
+    "This package provides structs for handling malloc'd memory passed to Rust.")
+   (license license:expat)))
+
 (define-public rust-maplit-1.0
   (package
     (name "rust-maplit")
@@ -6031,6 +6874,26 @@ parallelize and optimize.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-maybe-uninit-2.0
+  (package
+    (name "rust-maybe-uninit")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "maybe-uninit" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "004y0nzmpfdrhz251278341z6ql34iv1k6dp1h6af7d6nd6jwc30"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/est31/maybe-uninit")
+    (synopsis "MaybeUninit for friends of backwards compatibility")
+    (description
+     "This package provides MaybeUninit for friends of backwards compatibility.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-md5-0.6
   (package
     (name "rust-md5")
@@ -6044,13 +6907,27 @@ parallelize and optimize.")
          (base32
           "17b2xm4h4cvxsdjsf3kdrzqv2za60kak961xzi5kmw6g6djcssvy"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/stainless-steel/md5")
     (synopsis "MD5 hash function in Rust")
     (description "The package provides the MD5 hash function.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-md5-0.3
+  (package
+    (inherit rust-md5-0.6)
+    (name "rust-md5")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "md5" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0j2s8aqdkhwhy7awga2bmv5n8qq8bgy8672iha9f3y871dm6vibr"))))))
+
 (define-public rust-memchr-2.2
   (package
     (name "rust-memchr")
@@ -6291,6 +7168,26 @@ drop-in replacement for miniz.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-mint-0.5
+  (package
+    (name "rust-mint")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "mint" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0c4190gr348fkfijij7vm19iagwl36mssj1irc9f6m448hbhgn68"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/kvark/mint")
+    (synopsis "Math interoperability standard types")
+    (description
+     "This package provides math interoperability standard types.")
+    (license license:expat)))
+
 (define-public rust-mio-0.6
   (package
     (name "rust-mio")
@@ -6480,7 +7377,26 @@ checking.")
       "Chaining APIs for both self -> Self and &mut self methods.")
     (description
       "Chaining APIs for both self -> Self and &mut self methods.")
-    (properties '((hidden? . #t)))
+    (license license:expat)))
+
+(define-public rust-natord-1.0
+  (package
+    (name "rust-natord")
+    (version "1.0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "natord" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0z75spwag3ch20841pvfwhh3892i2z2sli4pzp1jgizbipdrd39h"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/lifthrasiir/rust-natord")
+    (synopsis "Natural ordering for Rust")
+    (description
+     "This package provides a crate to perform natural ordering for Rust.")
     (license license:expat)))
 
 (define-public rust-net2-0.2
@@ -6622,6 +7538,50 @@ pairs in insertion order.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-linked-hash-map-0.3
+  (package
+    (inherit rust-linked-hash-map-0.5)
+    (name "rust-linked-hash-map")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "linked-hash-map" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kaf95grvfqchxn8pl0854g8ab0fzl56217hndhhhz5qqm2j09kd"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clippy" ,rust-clippy-0.0)
+        ("rust-serde" ,rust-serde-0.8)
+        ("rust-serde-test" ,rust-serde-test-0.8))))))
+
+(define-public rust-lscolors-0.6
+  (package
+    (name "rust-lscolors")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lscolors" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jxsgkn378kxkiqdshdjdclw5wwp2xaz45cqd3yw85fhn8a38fza"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3.1))))
+    (home-page "https://github.com/sharkdp/lscolors")
+    (synopsis "Colorize paths using the LS_COLORS environment variable")
+    (description
+     "Colorize paths using the LS_COLORS environment variable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-new-debug-unreachable-1.0
   (package
     (name "rust-new-debug-unreachable")
@@ -6671,7 +7631,7 @@ release (fork of debug_unreachable)")
        (("rust-bytes" ,rust-bytes-0.4)
         ("rust-caps" ,rust-caps-0.3)
         ("rust-cc" ,rust-cc-1.0)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-sysctl" ,rust-sysctl-0.4)
         ("rust-tempfile" ,rust-tempfile-3.0))))
@@ -6681,10 +7641,68 @@ release (fork of debug_unreachable)")
      "Rust friendly bindings to *nix APIs.")
     (license license:expat)))
 
+(define-public rust-no-panic-0.1
+  (package
+    (name "rust-no-panic")
+    (version "0.1.12")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "no-panic" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0xan5v9ac1aklinc8aw16raq36pb4idjrl502np8gy32gfs6s751"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3.1))))
+    (home-page "https://github.com/dtolnay/no-panic")
+    (synopsis "Prove a function can't ever panic")
+    (description
+     "This package provides a rust attribute macro to require that the compiler
+prove a function can't ever panic.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-nix-0.14
+  (package
+    (inherit rust-nix-0.15)
+    (name "rust-nix")
+    (version "0.14.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nix" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kmxdlmvnmq8cfpmr3g6wk37rwi2ybdvp1z6z3831m1p23p2nwkc"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cc" ,rust-cc-1.0)
+        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-void" ,rust-void-1.0))
+       #:cargo-development-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-caps" ,rust-caps-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-sysctl" ,rust-sysctl-0.1)
+        ("rust-tempfile" ,rust-tempfile-3.0))))))
+
 (define-public rust-nodrop-0.1
   (package
     (name "rust-nodrop")
-    (version "0.1.13")
+    (version "0.1.14")
     (source
       (origin
         (method url-fetch)
@@ -6692,13 +7710,15 @@ release (fork of debug_unreachable)")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0if9ifn6rvar5jirx4b3qh4sl5kjkmcifycvzhxa9j3crkfng5ig"))))
+          "1fz1v9r8ijacf0hlq0pdv5l9mz8vgqg1snmhvpjmi9aci1b4mvvj"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nodrop-union" ,rust-nodrop-union-0.1))))
     (home-page "https://github.com/bluss/arrayvec")
     (synopsis "Wrapper type to inhibit drop (destructor)")
     (description "This package provides a wrapper type to inhibit drop
 (destructor).  Use @code{std::mem::ManuallyDrop} instead!")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -6743,7 +7763,7 @@ implementation (which is unstable / requires nightly).")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-lexical-core" ,rust-lexical-core-0.4)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-regex" ,rust-regex-1.1))
@@ -6760,6 +7780,24 @@ implementation (which is unstable / requires nightly).")
 combinators library.")
     (license license:expat)))
 
+(define-public rust-nom-1.2
+  (package
+    (inherit rust-nom-4.2)
+    (name "rust-nom")
+    (version "1.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nom" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kjh42w67z1hh1dw3jrilgqrf54jk2xcvhw4rcdm4wclzmbc5f55"))))
+    (arguments
+      ;; This is an ancient version and all inputs are optional.
+     `(#:skip-build? #t))))
+
 (define-public rust-num-complex-0.2
   (package
     (name "rust-num-complex")
@@ -6790,25 +7828,26 @@ combinators library.")
      "Complex numbers implementation for Rust.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-num-cpus-1.10
+(define-public rust-num-cpus-1.11
   (package
     (name "rust-num-cpus")
-    (version "1.10.1")
+    (version "1.11.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "num_cpus" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0wrj3zvj6h3q26sqj9zxpd59frjb54n7jhjwf307clq31ic47vxw"))))
+          "0wlxs00cpg16z09fwchj1gdz1jxnf5dgg1cbidvq0sc75bnwbnkn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2))
-       #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+     `(#:cargo-inputs
+        (("rust-hermit-abi" ,rust-hermit-abi-0.1)
+         ("rust-libc" ,rust-libc-0.2))
+        #:cargo-development-inputs
+        (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://github.com/seanmonstar/num_cpus")
     (synopsis "Get the number of CPUs on a machine")
     (description
@@ -6816,10 +7855,29 @@ combinators library.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-num-cpus-1.10
+  (package
+    (inherit rust-num-cpus-1.11)
+    (name "rust-num-cpus")
+    (version "1.10.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "num_cpus" version))
+        (file-name (string-append name "-" version ".crate"))
+        (sha256
+         (base32
+          "0wrj3zvj6h3q26sqj9zxpd59frjb54n7jhjwf307clq31ic47vxw"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
+
 (define-public rust-num-integer-0.1
   (package
     (name "rust-num-integer")
-    (version "0.1.41")
+    (version "0.1.42")
     (source
      (origin
        (method url-fetch)
@@ -6828,12 +7886,15 @@ combinators library.")
         (string-append name "-" version ".crate"))
        (sha256
         (base32
-         "02dwjjpfbi16c71fq689s4sw3ih52cvfzr5z5gs6qpr5z0g58pmq"))))
+         "1fpw8yr9xwsf3qrh91rm7mzqaiwlc2dmnalsxv9pr9w1klpacviz"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-autocfg" ,rust-autocfg-1.0))))
     (home-page "https://github.com/rust-num/num-integer")
     (synopsis "Integer traits and functions")
     (description "Integer traits and functions.")
-    (properties '((hidden? . #t)))
     ;; Dual licensed.
     (license (list license:asl2.0
                    license:expat))))
@@ -6841,7 +7902,7 @@ combinators library.")
 (define-public rust-num-iter-0.1
   (package
     (name "rust-num-iter")
-    (version "0.1.39")
+    (version "0.1.40")
     (source
       (origin
         (method url-fetch)
@@ -6849,20 +7910,24 @@ combinators library.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0bhk2qbr3261r6zvfc58lz4spfqjhvdripxgz5mks5rd85r55gbn"))))
+          "005wif3bk23b5jdg7l0cprzqzyc4jg0xjyzyykciv2ci08581c6z"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-autocfg" ,rust-autocfg-1.0))))
     (home-page "https://github.com/rust-num/num-iter")
     (synopsis "External iterators for generic mathematics")
     (description
      "This crate provides external iterators for generic mathematics.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
 (define-public rust-num-traits-0.2
   (package
     (name "rust-num-traits")
-    (version "0.2.8")
+    (version "0.2.11")
     (source
      (origin
        (method url-fetch)
@@ -6871,13 +7936,15 @@ combinators library.")
         (string-append name "-" version ".crate"))
        (sha256
         (base32
-         "0clvrm34rrqc8p6gq5ps5fcgws3kgq5knh7nlqxf2ayarwks9abb"))))
+         "15khrlm1bra50nd48ijl1vln13m9xg4fxzghf28jp16ic5zf8ay6"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1.0)
+        ("rust-libm" ,rust-libm-0.2))))
     (home-page "https://github.com/rust-num/num-traits")
     (synopsis "Numeric traits for generic mathematics")
     (description "Numeric traits for generic mathematics.")
-    (properties '((hidden? . #t)))
-    ;; Dual licensed.
     (license (list license:asl2.0
                    license:expat))))
 
@@ -6894,7 +7961,30 @@ combinators library.")
         (sha256
          (base32
           "0c9whknf2dm74a3cqirafy6gj83a76gl56g4v3g19k6lkwz13rcj"))))
-    (build-system cargo-build-system)))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-traits" , rust-num-traits-0.2))))))
+
+(define-public rust-number-prefix-0.3
+  (package
+    (name "rust-number-prefix")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "number_prefix" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0slm4mqmpgs6hvz22ycny9lvyvl9ivs80a1lncslp7lszz02zc0p"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/ogham/rust-number-prefix")
+    (synopsis "Format numeric prefixes: kilo, giga, kibi")
+    (description
+     "This package provides a library for formatting numeric prefixes: kilo,
+giga, kibi.")
+    (license license:expat)))
 
 (define-public rust-numtoa-0.1
   (package
@@ -6909,13 +7999,110 @@ combinators library.")
          (base32
           "1vs9rhggqbql1p26x8nkha1j06wawwgb2jp5fs88b5gi7prvvy5q"))))
     (build-system cargo-build-system)
+    (arguments '(#:tests? #f))
     (home-page "https://gitlab.com/mmstick/numtoa")
     (synopsis "Convert numbers into stack-allocated byte arrays")
     (description
      "This package can convert numbers into stack-allocated byte arrays.")
-    (properties '((hidden? . #t)))
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-objc-0.2
+  (package
+    (name "rust-objc")
+    (version "0.2.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "objc" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1cbpf6kz8a244nn1qzl3xyhmp05gsg4n313c9m3567625d3innwi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require gcc-objc.
+       #:cargo-inputs
+       (("rust-malloc-buf" ,rust-malloc-buf-0.0)
+        ("rust-objc-exception" ,rust-objc-exception-0.1))))
+    (home-page "http://github.com/SSheldon/rust-objc")
+    (synopsis "Objective-C Runtime bindings and wrapper for Rust")
+    (description "This package provides an Objective-C Runtime bindings and
+wrapper for Rust.")
+    (license license:expat)))
+
+(define-public rust-objc-exception-0.1
+  (package
+    (name "rust-objc-exception")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "objc-exception" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "191cmdmlypp6piw67y4m8y5swlxf5w0ss8n1lk5xd2l1ans0z5xd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1.0))))
+    (home-page "http://github.com/SSheldon/rust-objc-exception")
+    (synopsis "Rust interface for Objective-C's throw and try/catch statements")
+    (description
+     "This package provides a Rust interface for Objective-C's throw and
+try/catch statements.")
+    (license license:expat)))
+
+(define-public rust-objc-id-0.1
+  (package
+    (name "rust-objc-id")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "objc_id" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0fq71hnp2sdblaighjc82yrac3adfmqzhpr11irhvdfp9gdlsbf9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require gcc-objc.
+       #:cargo-inputs (("rust-objc" ,rust-objc-0.2))))
+    (home-page "http://github.com/SSheldon/rust-objc-id")
+    (synopsis "Rust smart pointers for Objective-C reference counting")
+    (description
+     "This package provides Rust smart pointers for Objective-C reference counting.")
+    (license license:expat)))
+
+(define-public rust-objc-test-utils-0.0
+  (package
+    (name "rust-objc-test-utils")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "objc_test_utils" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "09rckmp5h9bbns08xzicdlk7y5lxj2ygbg3yqk1cszfnzd5n8kzx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-gcc" ,rust-gcc-0.3))))
+    (home-page "http://github.com/SSheldon/rust-objc")
+    (synopsis "Utilities for testing Objective-C interop")
+    (description
+     "This package provides utilities for testing Objective-C interop.")
+    (license license:expat)))
+
 (define-public rust-object-0.12
   (package
     (name "rust-object")
@@ -6969,7 +8156,7 @@ formats.")
         ("rust-unchecked-index" ,rust-unchecked-index-0.2))
        #:cargo-development-inputs
        (("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-quickcheck" ,rust-quickcheck-0.8))))
     (home-page "https://github.com/bluss/odds")
@@ -7000,7 +8187,7 @@ Things in odds may move to more appropriate crates if we find them.")
        (("rust-parking-lot" ,rust-parking-lot-0.9))
        #:cargo-development-inputs
        (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1))))
     (home-page "https://github.com/matklad/once_cell")
     (synopsis "Single assignment cells and lazy values")
@@ -7049,7 +8236,7 @@ Things in odds may move to more appropriate crates if we find them.")
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-foreign-types" ,rust-foreign-types-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9))
        #:cargo-development-inputs
@@ -7078,28 +8265,6 @@ Things in odds may move to more appropriate crates if we find them.")
     (description
      "This package provides a tool to find SSL certificate locations on the
 system for OpenSSL.")
-    (properties '((hidden? . #t)))
-    (license (list license:asl2.0
-                   license:expat))))
-
-(define-public rust-openssl-src-111
-  (package
-    (name "rust-openssl-src")
-    (version "111.6.0+1.1.1d")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "openssl-src" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "172xh95hp7aygahah1940kg1dnx60c5m80cwj5hgi8x7x0fxmhmr"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/alexcrichton/openssl-src-rs")
-    (synopsis "Source of OpenSSL for rust crates")
-    (description
-     "This package contains the source of OpenSSL and logic to build it.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7111,19 +8276,18 @@ system for OpenSSL.")
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
-        (file-name (string-append name "-" version ".crate"))
+        (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0vvk8vzrc73y8n5rf4yj3x8ygyxjaz7wxrbxiwqi7qy0gyp1cpa6"))))
+         (base32 "0vvk8vzrc73y8n5rf4yj3x8ygyxjaz7wxrbxiwqi7qy0gyp1cpa6"))
+        (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t ; it wants rust-openssl-src
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ;; Build dependencies:
         ("rust-autocfg" ,rust-autocfg-0.1)
         ("rust-cc" ,rust-cc-1.0)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ;("rust-openssl-src" ,rust-openssl-src-111)
         ("rust-vcpkg" ,rust-vcpkg-0.2))
        #:phases
        (modify-phases %standard-phases
@@ -7162,7 +8326,7 @@ system for OpenSSL.")
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1.0)
         ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-serde-test" ,rust-serde-test-1.0))))
@@ -7253,6 +8417,29 @@ normally prevent moving a type that has been borrowed from.")
     (description "Portable Packed SIMD vectors.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pad-0.1
+  (package
+    (name "rust-pad")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pad" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1qy0r26r52gp034fv252mmg0s599a55h9nr4xswy04hvky49pbfj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page "https://github.com/ogham/rust-pad")
+    (synopsis "Library for padding strings at runtime")
+    (description
+      "This package provides a library for padding strings at runtime.")
+    (license license:expat)))
+
 (define-public rust-parking-lot-0.9
   (package
     (name "rust-parking-lot")
@@ -7274,7 +8461,7 @@ normally prevent moving a type that has been borrowed from.")
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.6))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))
     (home-page "https://github.com/Amanieu/parking_lot")
@@ -7305,7 +8492,7 @@ synchronization primitives.")
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.5))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
@@ -7330,7 +8517,7 @@ synchronization primitives.")
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.4))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
@@ -7403,7 +8590,7 @@ synchronization primitives.")
 (define-public rust-parity-wasm-0.40
   (package
     (name "rust-parity-wasm")
-    (version "0.40.1")
+    (version "0.40.3")
     (source
       (origin
         (method url-fetch)
@@ -7411,14 +8598,17 @@ synchronization primitives.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1p84f0k36q05j18jy66n122lyali794cj78hbxgy9wj6si84plqd"))))
+          "03qycy21avz4970zc7aj8rj5h4wvi4qsrc90a6hpws1a56mglf8y"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-development-inputs
+       (("rust-time" ,rust-time-0.1))))
     (home-page "https://github.com/paritytech/parity-wasm")
     (synopsis "Low-level WebAssembly format library")
     (description
      "This package provides a WebAssembly binary format serialization,
 deserialization, and interpreter in Rust.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7554,7 +8744,6 @@ deserialization, and interpreter in Rust.")
 value.  This allows you to use @code{Iterator::by_ref} and
 @code{Iterator::take_while} together, and still get the first value for which
 the @code{take_while} predicate returned false after dropping the @code{by_ref}.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7574,7 +8763,6 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}.
     (home-page "https://github.com/servo/rust-url/")
     (synopsis "Percent encoding and decoding")
     (description "This crate provides percent encoding and decoding.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7918,14 +9106,13 @@ algorithms.")
     (home-page "https://github.com/rust-lang-nursery/pin-utils")
     (synopsis "Utilities for pinning")
     (description "This crate provides utilities for pinning values on the stack.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
 (define-public rust-pkg-config-0.3
   (package
     (name "rust-pkg-config")
-    (version "0.3.14")
+    (version "0.3.17")
     (source
       (origin
         (method url-fetch)
@@ -7933,16 +9120,18 @@ algorithms.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "135ia995lqzr0gxpk85h0bjxf82kj6hbxdx924sh9jdln6r8wvk7"))))
+          "0xynnaxdv0gzadlw4h79j855k0q7rj4zb9xb1vk00nc6ss559nh5"))))
     (build-system cargo-build-system)
-    ;(inputs
-    ; `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/rust-lang/pkg-config-rs")
     (synopsis "Library to run the pkg-config system tool")
     (description
      "A library to run the pkg-config system tool at build time in order to be
 used in Cargo build scripts.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7963,7 +9152,6 @@ used in Cargo build scripts.")
     (synopsis "Rust library that allows reinterpreting data safely")
     (description "This package provides a small Rust library that allows users
  to reinterpret data of certain types safely.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -7980,11 +9168,15 @@ used in Cargo build scripts.")
          (base32
           "1q7nghkpvxxr168y2jnzh3w7qc9vfrby9n7ygy3xpj0bj71hsshs"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-typemap" ,rust-typemap-0.3))
+       #:cargo-development-inputs
+       (("rust-void" ,rust-void-1.0))))
     (home-page "https://github.com/reem/rust-plugin")
     (synopsis "Lazily evaluated, order-independent plugins for extensible types")
     (description
      "Lazily evaluated, order-independent plugins for extensible types.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-pocket-resources-0.3
@@ -8004,13 +9196,33 @@ used in Cargo build scripts.")
     (synopsis "Include resources in your applications")
     (description "This crate allows you to include resources in your
 applications.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
+(define-public rust-podio-0.1
+  (package
+    (name "rust-podio")
+    (version "0.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "podio" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ga5arhwakj5rwrqzf9410zrbwnf24jd59af8kr9rgwbd6vb83vq"))))
+    (build-system cargo-build-system)
+    ;(arguments '(#:skip-build? #t))
+    (home-page "https://github.com/mvdnes/podio.git")
+    (synopsis "Additional trait to read and write Plain Old Data")
+    (description
+     "Additional trait for Read and Write to read and write Plain Old Data.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ppv-lite86-0.2
   (package
     (name "rust-ppv-lite86")
-    (version "0.2.5")
+    (version "0.2.6")
     (source
       (origin
         (method url-fetch)
@@ -8018,13 +9230,12 @@ applications.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "06snnv338w341nicfqba2jgln5dsla72ndkgrw7h1dfdb3vgkjz3"))))
+          "06zs492wbms7j5qhy58cs3976c7kyc47rx0d6fn63rgvp580njbl"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/cryptocorrosion/cryptocorrosion")
     (synopsis "Implementation of the crypto-simd API for x86")
     (description "This crate provides an implementation of the crypto-simd API
 for x86.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -8083,6 +9294,26 @@ dependency to expose a precomputed hash.")
      "Procedural macros in expression position.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-proc-macro-hack-impl-0.4
+  (package
+    (name "rust-proc-macro-hack-impl")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "proc-macro-hack-impl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hk8g6s0zsi1ps0w48la2s8q5iqq42g8jfrgq3l2v04l2p5pvi1q"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/dtolnay/proc-macro-hack")
+    (synopsis "Procedural functionlike!() macros using only Macros 1.1")
+    (description
+     "Procedural functionlike!() macros using only Macros 1.1.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-proc-macro-nested-0.1
   (package
     (name "rust-proc-macro-nested")
@@ -8145,8 +9376,7 @@ in terms of the upstream unstable API.")
          (base32
           "0nd71fl24sys066jrha6j7i34nfkjv44yzw8yww9742wmc8j0gfg"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-unicode-xid" ,rust-unicode-xid-0.1))
        #:cargo-development-inputs
        (("rust-quote" ,rust-quote-0.6))))))
@@ -8171,7 +9401,7 @@ in terms of the upstream unstable API.")
        (("rust-bit-set" ,rust-bit-set-0.5)
         ("rust-bitflags" ,rust-bitflags-1)
         ("rust-byteorder" ,rust-byteorder-1.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-quick-error" ,rust-quick-error-1.2)
         ("rust-rand" ,rust-rand-0.4)
@@ -8190,6 +9420,29 @@ in terms of the upstream unstable API.")
      "Hypothesis-like property-based testing and shrinking.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-psm-0.1
+  (package
+    (name "rust-psm")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "psm" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1q1hdbnp2j3zz1vhzp1xhds6ynan3mg5bhjlhfy5m1sg8n5wckxi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-cc" ,rust-cc-1.0))))
+    (home-page "https://github.com/rust-lang/stacker/")
+    (synopsis "Stack manipulation and introspection routines")
+    (description "This crate provides very portable functions to control the
+stack pointer and inspect the properties of the stack.")
+    (license (list license:isc license:asl2.0))))
+
 (define-public rust-pulldown-cmark-0.4
   (package
     (name "rust-pulldown-cmark")
@@ -8214,7 +9467,7 @@ in terms of the upstream unstable API.")
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.2)
         ("rust-html5ever" ,rust-html5ever-0.23)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-tendril" ,rust-tendril-0.4))))
     (home-page "https://github.com/raphlinus/pulldown-cmark")
@@ -8223,6 +9476,32 @@ in terms of the upstream unstable API.")
      "This package provides a pull parser for CommonMark.")
     (license license:expat)))
 
+(define-public rust-quantiles-0.7
+  (package
+    (name "rust-quantiles")
+    (version "0.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "quantiles" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wjp16a3d4bmldq9w2wds0q4gjz4mnsqac3g38r6ryr6zc9sh3y1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.5))))
+    (home-page "https://github.com/postmates/quantiles")
+    (synopsis "Collection of approximate quantile algorithms")
+    (description
+     "This package provides a collection of approximate quantile algorithms.")
+    (license license:expat)))
+
 (define-public rust-quick-error-1.2
   (package
     (name "rust-quick-error")
@@ -8261,12 +9540,11 @@ to write.")
          "0mkl4wnvvjk4m32aq3an4ayfyvnmbxnzcybfm7n3fbsndb1xjdcw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-log" ,rust-log-0.4)
-        ("rust-rand" ,rust-rand-0.4)
-        ("rust-rand-core" ,rust-rand-core-0.5))))
+        ("rust-rand" ,rust-rand-0.6)
+        ("rust-rand-core" ,rust-rand-core-0.4))))
     (home-page
      "https://github.com/BurntSushi/quickcheck")
     (synopsis
@@ -8338,6 +9616,26 @@ to write.")
         ("rust-log" ,rust-log-0.3)
         ("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-quickcheck-0.2
+  (package
+    (inherit rust-quickcheck-0.8)
+    (name "rust-quickcheck")
+    (version "0.2.27")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "quickcheck" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vb4acppaavlnchzc1jmn5wlkgir9x9gmhgp97bavyxxqxgsg1nh"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-env-logger" ,rust-env-logger-0.3)
+        ("rust-log" ,rust-log-0.3)
+        ("rust-rand" ,rust-rand-0.3))
+       #:skip-build? #t))))  ; Package needs 'unicode' crate.
+
 (define-public rust-quote-1.0
   (package
     (name "rust-quote")
@@ -8351,17 +9649,22 @@ to write.")
          (base32
           "1zkc46ryacf2jdkc6krsy2z615xbk1x8kp1830rcxz3irj5qqfh5"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-0.1)
+        ("rust-trybuild" ,rust-trybuild-1.0))))
     (home-page "https://github.com/dtolnay/quote")
     (synopsis "Quasi-quoting macro quote!(...)")
     (description "Quasi-quoting macro quote!(...)")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-quote-0.6
   (package
     (inherit rust-quote-1.0)
     (name "rust-quote")
-    (version "0.6.12")
+    (version "0.6.13")
     (source
       (origin
         (method url-fetch)
@@ -8369,7 +9672,25 @@ to write.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1nw0klza45hf127kfyrpxsxd5jw2l6h21qxalil3hkr7bnf7kx7s"))))))
+          "1qgqq48jymp5h4y082aanf25hrw6bpb678xh3zw993qfhxmkpqkc"))))
+    (arguments
+     `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-0.4))))))
+
+(define-public rust-quote-0.3
+  (package
+    (inherit rust-quote-0.6)
+    (name "rust-quote")
+    (version "0.3.15")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "quote" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0yhnnix4dzsv8y4wwz4csbnqjfh73al33j35msr10py6cl5r4vks"))))
+    (arguments '())))
 
 (define-public rust-rand-0.7
   (package
@@ -8420,8 +9741,7 @@ useful types and distributions, and some randomness-related algorithms.")
          (base32
           "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-packed-simd" ,rust-packed-simd-0.3)
@@ -8436,7 +9756,8 @@ useful types and distributions, and some randomness-related algorithms.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-autocfg" ,rust-autocfg-0.1)) ; build-dependency
        #:cargo-development-inputs
-       (("rust-rand-xoshiro" ,rust-rand-xoshiro-0.1))))))
+       (("rust-average" ,rust-average-0.9)
+        ("rust-rand-xoshiro" ,rust-rand-xoshiro-0.1))))))
 
 (define-public rust-rand-0.5
   (package
@@ -8688,10 +10009,18 @@ generator that uses the HC-128 algorithm.")
          (base32
           "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.3)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1.1))))
     (home-page "https://crates.io/crates/rand_isaac")
     (synopsis "ISAAC random number generator")
-    (description "ISAAC random number generator")
-    (properties '((hidden? . #t)))
+    (description "This package implements the @code{ISAAC} and @code{ISAAC-64}
+random number generators.  ISAAC stands for \"Indirection, Shift, Accumulate,
+Add, and Count\" which are the principal bitwise operations employed.")
     (license (list license:asl2.0
                    license:expat))))
 
@@ -8708,12 +10037,16 @@ generator that uses the HC-128 algorithm.")
          (base32
           "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rand-core" ,rust-rand-core-0.4)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-log" ,rust-log-0.4))))
     (home-page "https://github.com/rust-random/rand")
-    (synopsis
-      "Random number generator based on timing jitter")
-    (description
-      "Random number generator based on timing jitter")
-    (properties '((hidden? . #t)))
+    (synopsis "Random number generator based on timing jitter")
+    (description "This package provides a non-physical true random number
+generator based on timing jitter.")
     (license (list license:asl2.0
                    license:expat))))
 
@@ -8859,11 +10192,17 @@ generator that uses the HC-128 algorithm.")
          (base32
           "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand-core" ,rust-rand-core-0.3)
+        ("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1.1))))
     (home-page "https://crates.io/crates/rand-xorshift")
     (synopsis "Xorshift random number generator")
     (description
       "Xorshift random number generator")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -8992,7 +10331,7 @@ accessors.")
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-docopt" ,rust-docopt-1.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.7)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
         ("rust-serde" ,rust-serde-1.0))))
@@ -9025,7 +10364,7 @@ accessors.")
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
         ("rust-docopt" ,rust-docopt-1.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.4)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
         ("rust-serde" ,rust-serde-1.0)
@@ -9051,7 +10390,7 @@ accessors.")
        (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
         ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-cpus" ,rust-num-cpus-1.10))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -9083,7 +10422,7 @@ accessors.")
        (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
         ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
         ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-cpus" ,rust-num-cpus-1.10))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -9241,7 +10580,7 @@ functionality.")
 (define-public rust-regex-1.3
   (package
     (name "rust-regex")
-    (version "1.3.3")
+    (version "1.3.4")
     (source
      (origin
        (method url-fetch)
@@ -9250,18 +10589,17 @@ functionality.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11syqmfvbsah805z6ih8vxf8p6jssdsz1gjsjqcwprz484cqql5m"))))
+         "1a1mh9mgr8jipnxdaykla6xlw4a6kjn2bzkq3cifx8xy4ivzjb1j"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-aho-corasick" ,rust-aho-corasick-0.7)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
         ("rust-thread-local" ,rust-thread-local-1.0))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rand" ,rust-rand-0.6))))
     (home-page "https://github.com/rust-lang/regex")
@@ -9275,7 +10613,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
   (package
     (inherit rust-regex-1.3)
     (name "rust-regex")
-    (version "1.1.7")
+    (version "1.1.9")
     (source
      (origin
        (method url-fetch)
@@ -9284,10 +10622,9 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1pabajpp0wzb7dm2x32gy8w7k0mwykr6zsvzn0fgpr6pww40hbqb"))))
+         "1ba47ivq8l1yikiwikjnq5barag6iqfgcpxlz2263fqbq9y2kn6r"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-aho-corasick" ,rust-aho-corasick-0.7)
         ("rust-memchr" ,rust-memchr-2.2)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
@@ -9295,9 +10632,9 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))
        #:cargo-development-inputs
        (("rust-doc-comment" ,rust-doc-comment-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.8)
-        ("rust-rand" ,rust-rand-0.4))))))
+        ("rust-rand" ,rust-rand-0.6))))))
 
 (define-public rust-regex-0.2
   (package
@@ -9323,7 +10660,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-thread-local" ,rust-thread-local-0.3)
         ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-rand" ,rust-rand-0.4))))))
 
@@ -9348,7 +10685,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
         ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
@@ -9364,7 +10701,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
 (define-public rust-regex-syntax-0.6
   (package
     (name "rust-regex-syntax")
-    (version "0.6.13")
+    (version "0.6.14")
     (source
       (origin
         (method url-fetch)
@@ -9372,9 +10709,8 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "141xi6yiji0bc04c4skamd4ny9vnd1jrwc7qzfga425lyn8yhd77"))))
+          "01myl8xqpbnird23xnsb92sjmz1cmp69r6m7y3dwbpmsx4zzx3dj"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expression parser")
     (description
@@ -9401,6 +10737,25 @@ uses finite automata and guarantees linear time matching on all inputs.")
        #:cargo-inputs
        (("rust-ucd-util" ,rust-ucd-util-0.1))))))
 
+(define-public rust-regex-syntax-0.3
+  (package
+    (inherit rust-regex-syntax-0.6)
+    (name "rust-regex-syntax")
+    (version "0.3.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "regex-syntax" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ms9hgdhhsxw9w920i7gipydvagf100bb56jbs192rz86ln01v7r"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.2)
+        ("rust-rand" ,rust-rand-0.3))))))
+
 (define-public rust-remove-dir-all-0.5
   (package
     (name "rust-remove-dir-all")
@@ -9677,6 +11032,29 @@ rust-lang/rust integration.")
 require unstable language features.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-rustc-tools-util-0.2
+  (package
+    (name "rust-rustc-tools-util")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustc_tools_util" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vj4ymv29igs7n52m12k138zbsn5k5d7ya4sys6lig7sx7ddl9dp"))))
+    (build-system cargo-build-system)
+    (arguments '(#:skip-build? #t))
+    (home-page
+     "https://github.com/rust-lang/rust-clippy")
+    (synopsis
+     "small helper to generate version information for git packages")
+    (description
+     "small helper to generate version information for git packages")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rustc-version-0.2
   (package
     (name "rust-rustc-version")
@@ -9736,6 +11114,31 @@ rustc compiler.")
      "Automatically apply the suggestions made by rustc.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rustversion-0.1
+  (package
+    (name "rust-rustversion")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rustversion" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1s3ib2paa5gq17x4qsmjmnsw68z7b5d5av1wsiqcrihmqb7kk0dl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0)
+        ("rust-syn" ,rust-syn-1.0))))
+    (home-page "https://github.com/dtolnay/rustversion")
+    (synopsis "Conditional compilation according to rustc compiler version")
+    (description "This package provides conditional compilation according to
+rustc compiler version.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rusty-fork-0.2
   (package
     (name "rust-rusty-fork")
@@ -9777,12 +11180,17 @@ using a fork-like interface.")
          (base32
           "1j0h74f1xqf9hjkhanp8i20mqc1aw35kr1iq9i79q7713mn51a5z"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-no-panic" ,rust-no-panic-0.1))
+       #:cargo-development-inputs
+       (("rust-num-cpus" ,rust-num-cpus-1.11)
+        ("rust-rand" ,rust-rand-0.5))))
     (home-page "https://github.com/dtolnay/ryu")
-    (synopsis
-      "Fast floating point to string conversion")
+    (synopsis "Fast floating point to string conversion")
     (description
-      "Fast floating point to string conversion")
-    (properties '((hidden? . #t)))
+     "This package provides a pure Rust implementation of Ryū, an algorithm to
+quickly convert floating point numbers to decimal strings.")
     (license (list license:asl2.0 license:boost1.0))))
 
 (define-public rust-safemem-0.3
@@ -9849,7 +11257,7 @@ paths point to the same file.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/steffengy/schannel-rs")
     (synopsis "Rust bindings to the Windows SChannel APIs")
@@ -9874,7 +11282,7 @@ server functionality.")
     (arguments
      `(#:skip-build? #t
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3))))
+       (("rust-lazy-static" ,rust-lazy-static-1))))
     (home-page "https://github.com/Kimundi/scoped-threadpool-rs")
     (synopsis "Library for scoped and cached threadpools")
     (description
@@ -10112,7 +11520,6 @@ proven statistical guarantees.")
     (home-page "https://github.com/steveklabnik/semver-parser")
     (synopsis "Parsing of the semver spec")
     (description "This package provides for parsing of the semver spec.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10155,8 +11562,49 @@ proven statistical guarantees.")
      "This package provides a generic serialization/deserialization framework.")
     (license (list license:expat license:asl2.0))))
 
-;; Circular dev dependency on bincode.
-;; Probably not going away: https://github.com/rust-lang/cargo/issues/4242
+(define-public rust-serde-0.8
+  (package
+    (inherit rust-serde-1.0)
+    (name "rust-serde")
+    (version "0.8.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1j4ajipn0sf4ya0crgcb94s848qp7mfc35n6d0q2rf8rk5skzbcx"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-clippy" ,rust-clippy-0.0))
+       #:tests? #f))))
+
+(define-public rust-serde-big-array-0.1
+  (package
+    (name "rust-serde-big-array")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-big-array" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0gkyqxk760mp1lfcg6lhjk95ajc89nr0qdd0vl4ic0g8pyxcy9mr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1.0))))
+    (home-page "https://github.com/est31/serde-big-array")
+    (synopsis "Big array helper for serde")
+    (description "This package provides a big array helper for serde.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-serde-bytes-0.11
   (package
     (name "rust-serde-bytes")
@@ -10299,6 +11747,29 @@ proven statistical guarantees.")
      "Token De/Serializer for testing De/Serialize implementations.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-test-0.8
+  (package
+    (inherit rust-serde-test-1.0)
+    (name "rust-serde-test")
+    (version "0.8.23")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "serde-test" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1m939j7cgs7i58r6vxf0ffp3nbr8advr8p9dqa9w8zk0z2yks2qi"))))
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-0.8))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-Cargo-toml
+           (lambda _
+             (substitute* "Cargo.toml"
+               ((", path = \"../serde\"") ""))
+             #t)))))))
+
 (define-public rust-serde-yaml-0.8
   (package
     (name "rust-serde-yaml")
@@ -10453,7 +11924,6 @@ proven statistical guarantees.")
     (synopsis "Split a string into shell words, like Python's shlex")
     (description "This crate provides a method to split a string into shell
 words, like Python's shlex.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10553,7 +12023,6 @@ words, like Python's shlex.")
     (synopsis "Pre-allocated storage for a uniform data type")
     (description "This create provides a pre-allocated storage for a uniform
 data type.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-sleef-sys-0.1
@@ -10652,12 +12121,20 @@ stack.")
          (base32
           "11bdcz04i106g4q7swkll0qxrb4287srqd2k3aq2q6i22zjlvdz8"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; tests require network access
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/alexcrichton/socket2-rs")
     (synopsis "Networking sockets in Rust")
     (description
      "This package provides utilities for handling networking sockets with a
 maximal amount of configuration possible intended.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10674,12 +12151,14 @@ maximal amount of configuration possible intended.")
          (base32
           "1lwa6973zs4bgj29my7agfjgk4nw9hp6j7dfnr13nid85fw7rxsb"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3.1))))
     (home-page "https://github.com/derekdreery/sourcefile-rs")
     (synopsis "Concatenate source from multiple files")
     (description
      "A library for concatenating source from multiple files, whilst keeping
 track of where each new file and line starts.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10713,7 +12192,7 @@ track of where each new file and line starts.")
 (define-public rust-spin-0.5
   (package
     (name "rust-spin")
-    (version "0.5.0")
+    (version "0.5.2")
     (source
       (origin
         (method url-fetch)
@@ -10721,16 +12200,31 @@ track of where each new file and line starts.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0m9clchsj0rf13bggsgvbv9haiy0f6rhvnvkpvkk8720a5pkydj4"))))
+          "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/mvdnes/spin-rs")
     (synopsis "Synchronization primitives based on spinning")
     (description "This crate provides synchronization primitives based on
 spinning.  They may contain data, are usable without @code{std},and static
 initializers are available.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
+(define-public rust-spin-0.4
+  (package
+    (inherit rust-spin-0.5)
+    (name "rust-spin")
+    (version "0.4.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spin" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "07ywqn1vrpi3c43fmvsx7pawk9h3rb77yyqbnhap2micl454kb6f"))))
+    (arguments '(#:skip-build? #t))))
+
 (define-public rust-stable-deref-trait-1.1
   (package
     (name "rust-stable-deref-trait")
@@ -10752,14 +12246,13 @@ types which deref to a fixed address which is valid even when the containing
 type is moved.  For example, Box, Vec, Rc, Arc and String implement this trait.
 Additionally, it defines CloneStableDeref for types like Rc where clones deref
 to the same address.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
 (define-public rust-stacker-0.1
   (package
     (name "rust-stacker")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
       (origin
         (method url-fetch)
@@ -10767,14 +12260,21 @@ to the same address.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0js0axz5nla1mkr2dm2vrv9rj964ng1lrv4l43sqlnfgawplhygv"))))
+          "12igajfgqz96c7vcwi91xdfsphawik6g36ndlglqih0a7bqw8vyr"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-psm" ,rust-psm-0.1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-cc" ,rust-cc-1.0))))
     (home-page "https://github.com/rust-lang/stacker")
     (synopsis "Manual segmented stacks for Rust")
     (description
      "This package provides a stack growth library useful when implementing
 deeply recursive algorithms that may accidentally blow the stack.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10822,7 +12322,6 @@ deeply recursive algorithms that may accidentally blow the stack.")
     (description
      "This package provides compile-time assertions to ensure that invariants
 are met.")
-    (properties '((hidden? . #t)))
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-stdweb-0.4
@@ -10852,10 +12351,10 @@ are met.")
         ("rust-stdweb-derive" ,rust-stdweb-derive-0.5)
         ("rust-stdweb-internal-macros" ,rust-stdweb-internal-macros-0.2)
         ("rust-stdweb-internal-runtime" ,rust-stdweb-internal-runtime-0.1)
-        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
+        ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-rustc-version" ,rust-rustc-version-0.2))
        #:cargo-development-inputs
-       (("rust-rustc-version" ,rust-rustc-version-0.2)
-        ("rust-serde-derive" ,rust-serde-derive-1.0)
+       (("rust-serde-derive" ,rust-serde-derive-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0)
         ("rust-stdweb-internal-test-macro" ,rust-stdweb-internal-test-macro-0.1)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
@@ -10928,7 +12427,7 @@ Web.")
 (define-public rust-stdweb-internal-runtime-0.1
   (package
     (name "rust-stdweb-internal-runtime")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
       (origin
         (method url-fetch)
@@ -10936,20 +12435,19 @@ Web.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1nhpyra7glbwcpakhpj5a3d7h7kx1ynif473nzshmk226m91f8ym"))))
+          "1h0nkppb4r8dbrbms2hw9n5xdcs392m0r5hj3b6lsx3h6fx02dr1"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/koute/stdweb")
     (synopsis "Internal runtime for the @code{stdweb} crate")
     (description "This crate provides internal runtime for the @code{stdweb}
 crate.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
 (define-public rust-stdweb-internal-test-macro-0.1
   (package
     (name "rust-stdweb-internal-test-macro")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
       (origin
         (method url-fetch)
@@ -10957,13 +12455,16 @@ crate.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "12rrm7p77xnm3xacgn3rgniiyyjb4gq7902wpbljsvbx045z69l2"))))
+          "0wx3jlm98qrg1pdw149fprzs9x3x3igqkm5ll23jv2v62yddfrjf"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1.0)
+        ("rust-quote" ,rust-quote-1.0))))
     (home-page "https://github.com/koute/stdweb")
     (synopsis "Internal crate of the `stdweb` crate")
     (description
      "Internal crate of the @code{stdweb} crate.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -10994,7 +12495,7 @@ crate.")
 (define-public rust-streaming-stats-0.2
   (package
     (name "rust-streaming-stats")
-    (version "0.2.2")
+    (version "0.2.3")
     (source
       (origin
         (method url-fetch)
@@ -11002,13 +12503,15 @@ crate.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0l7xz4g6709s80zqpvlhrg0qhgz64r94cwhmfsg8xhabgznbp2px"))))
+          "0iz5dlq51w5hxjrv6a4hpf8rrj91kgvy0s9mhj0j12il9v771mmh"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://github.com/BurntSushi/rust-stats")
     (synopsis "Compute basic statistics on streams")
     (description
      "Experimental crate for computing basic statistics on streams.")
-    (properties '((hidden? . #t)))
     (license (list license:unlicense
                    license:expat))))
 
@@ -11029,7 +12532,7 @@ crate.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-new-debug-unreachable"
          ,rust-new-debug-unreachable-1.0)
         ("rust-phf-shared" ,rust-phf-shared-0.7)
@@ -11100,7 +12603,7 @@ developed as part of the Servo project.")
 (define-public rust-strsim-0.9
   (package
     (name "rust-strsim")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
       (origin
         (method url-fetch)
@@ -11108,14 +12611,13 @@ developed as part of the Servo project.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "1xphwhf86yxxmcpvm4mikj8ls41f6nf7gqyjm98b74mfk81h6b03"))))
+          "0k497pv882qn3q977ckznm13vxx927g8s1swvcv68j3c1pccwik4"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dguo/strsim-rs")
     (synopsis "Rust implementations of string similarity metrics")
     (description "This crate includes implementations of string similarity
 metrics.  It includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro,
 and Jaro-Winkler.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-strsim-0.8
@@ -11132,6 +12634,108 @@ and Jaro-Winkler.")
          (base32
           "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"))))))
 
+(define-public rust-strsim-0.6
+  (package
+    (inherit rust-strsim-0.9)
+    (name "rust-strsim")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strsim" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "151ngha649cyybr3j50qg331b206zrinxqz7fzw1ra8r0n0mrldl"))))))
+
+(define-public rust-strsim-0.5
+  (package
+    (inherit rust-strsim-0.9)
+    (name "rust-strsim")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strsim" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0z3zzvmilfldp4xw42qbkjf901dcnbk58igrzsvivydjzd24ry37"))))))
+
+(define-public rust-structopt-0.2
+  (package
+    (name "rust-structopt")
+    (version "0.2.18")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "structopt" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1mvfv1l8vp3y402fkl2wcl34hi7gmr4bqha13dfz2xf3kjzwvhhn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-clap" ,rust-clap-2)
+        ("rust-structopt-derive" ,rust-structopt-derive-0.2))))
+    (home-page "https://github.com/TeXitoi/structopt")
+    (synopsis "Parse command line arguments by defining a struct")
+    (description
+     "Parse command line arguments by defining a struct.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-structopt-derive-0.2
+  (package
+    (name "rust-structopt-derive")
+    (version "0.2.18")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "structopt-derive" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "01sis9z5kqmyhvzbnmlzpdxcry99a0b9blypksgnhdsbm1hh40ak"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-syn" ,rust-syn-0.15))))
+    (home-page "https://github.com/TeXitoi/structopt")
+    (synopsis
+     "Parse command line argument by defining a struct, derive crate")
+    (description
+     "Parse command line argument by defining a struct, derive crate.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-subtle-1.0
+  (package
+    (name "rust-subtle")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "subtle" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1vm80mxbwfj334izwm8x8l65v1xl9hr0kwrg36r1rq565fkaarrd"))))
+    (build-system cargo-build-system)
+    (home-page "https://dalek.rs/")
+    (synopsis
+     "Pure-Rust traits and utilities for cryptographic implementations")
+    (description
+     "This package provides Pure-Rust traits and utilities for constant-time
+cryptographic implementations.")
+    (license license:bsd-3)))
+
 (define-public rust-syn-1.0
   (package
     (name "rust-syn")
@@ -11166,11 +12770,11 @@ and Jaro-Winkler.")
         (base32
          "1id5g6x6zihv3j7hwrw3m1jp636bg8dpi671r7zy3jvpkavb794w"))))
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags '("--release" "--all-features")
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-1.0)
-        ("rust-unicode-xid" ,rust-unicode-xid-0.2))
+        ("rust-quote" ,rust-quote-0.6)
+        ("rust-unicode-xid" ,rust-unicode-xid-0.1))
        #:cargo-development-inputs
        (("rust-insta" ,rust-insta-0.8)
         ("rust-rayon" ,rust-rayon-1.1)
@@ -11257,6 +12861,27 @@ and Jaro-Winkler.")
      "Simplified interface to libc::sysctl.")
     (license license:expat)))
 
+(define-public rust-sysctl-0.1
+  (package
+    (inherit rust-sysctl-0.4)
+    (name "rust-sysctl")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "sysctl" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "10wxlk4nkzlxp4fg435jmdmfwl4hy0y4w2rcsgs634lvbp8pgksb"))))
+    (arguments
+     `(#:skip-build? #t ; Unsupported on Linux.
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-errno" ,rust-errno-0.2)
+        ("rust-libc" ,rust-libc-0.2))))))
+
 (define-public rust-tar-0.4
   (package
     (name "rust-tar")
@@ -11282,6 +12907,26 @@ memory all at once.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-takeable-option-0.4
+  (package
+    (name "rust-takeable-option")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "takeable-option" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0hvd6vk4ksgg2y99498jw52ric4lxm0i6ygpzqm95gdrhvsxyynp"))))
+    (build-system cargo-build-system)
+    (home-page "https://docs.rs/takeable-option/")
+    (synopsis "A small wrapper around option.")
+    (description
+     "This package provides a small wrapper around option.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-tempdir-0.3
   (package
     (name "rust-tempdir")
@@ -11295,12 +12940,15 @@ memory all at once.")
          (base32
           "1n5n86zxpgd85y0mswrp5cfdisizq2rv3la906g6ipyc03xvbwhm"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-rand" ,rust-rand-0.4)
+        ("rust-remove-dir-all" ,rust-remove-dir-all-0.5))))
     (home-page "https://github.com/rust-lang-deprecated/tempdir")
     (synopsis "Temporary directory management for Rust")
     (description
      "This package provides a library for managing a temporary directory and
 deleting all contents when it's dropped.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -11433,6 +13081,29 @@ directories.")
        (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
         ("rust-winapi" ,rust-winapi-0.2))))))
 
+(define-public rust-term-grid-0.1
+  (package
+    (name "rust-term-grid")
+    (version "0.1.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "term_grid" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1kq2sy3b8329jrsrpcvijvyz4gbqjyvyy6c3n0wmmvda9y03w393"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page "https://github.com/ogham/rust-term-grid")
+    (synopsis "Library for formatting strings into a grid layout")
+    (description "This package provides a library for formatting strings into a
+grid layout.")
+    (license license:expat)))
+
 (define-public rust-term-size-1.0
   (package
     (name "rust-term-size")
@@ -11663,7 +13334,7 @@ different for every thread.")
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1.4))))
+       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1))))
     (home-page "https://github.com/Amanieu/thread_local-rs")
     (synopsis "Per-object thread-local storage")
     (description "Per-object thread-local storage.")
@@ -11685,7 +13356,7 @@ different for every thread.")
           "06rzik99p8c5js8238yhc8rk6np543ylb1dy9nrw5v80j0r3xdf6"))))
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1.4))))))
+       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1))))))
 
 (define-public rust-threadpool-1.7
   (package
@@ -12082,7 +13753,7 @@ futures efficiently")
        #:cargo-inputs
        (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
         ("rust-futures" ,rust-futures-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
@@ -12122,7 +13793,7 @@ futures.")
        #:cargo-inputs
        (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
         ("rust-futures" ,rust-futures-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-num-cpus" ,rust-num-cpus-1.10)
@@ -12323,7 +13994,7 @@ pool.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3))))
+       (("rust-lazy-static" ,rust-lazy-static-1))))
     (home-page "https://tokio.rs")
     (synopsis "Core primitives for tokio-trace")
     (description "Core primitives for tokio-trace.")
@@ -12463,7 +14134,6 @@ serializing Rust structures.")
     (home-page "https://github.com/reem/rust-traitobject")
     (synopsis "Unsafe helpers for dealing with raw trait objects")
     (description "Unsafe helpers for dealing with raw trait objects.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -12525,7 +14195,7 @@ serializing Rust structures.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-glob" ,rust-glob-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-serde" ,rust-serde-1.0)
         ("rust-serde-json" ,rust-serde-json-1.0)
         ("rust-termcolor" ,rust-termcolor-1.0)
@@ -12589,11 +14259,13 @@ serializing Rust structures.")
          (base32
           "1xm1gbvz9qisj1l6d36hrl9pw8imr8ngs6qyanjnsad3h0yfcfv5"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unsafe-any" ,rust-unsafe-any-0.4))))
     (home-page "https://github.com/reem/rust-typemap")
     (synopsis "Typesafe store for many value types")
     (description
      "A typesafe store for many value types.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-typenum-1.10
@@ -12636,7 +14308,7 @@ implementation is incomplete.")
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1.3)
+       (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.1))))
     (home-page "https://github.com/BurntSushi/ucd-generate")
     (synopsis "Parse data files in the Unicode character database")
@@ -12721,11 +14393,12 @@ with the Unicode character database.")
          (base32
           "1xmpmkakhhblq7dzab1kwyv925kv7fqjkjsxjspg6ix9n88makm8"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-version-check" ,rust-version-check-0.1))))
     (home-page "https://github.com/seanmonstar/unicase")
     (synopsis "Case-insensitive wrapper around strings")
     (description
      "A case-insensitive wrapper around strings.")
-    (properties '((hidden? . #t)))
     (license (list license:asl2.0
                    license:expat))))
 
@@ -12785,10 +14458,10 @@ including Canonical and Compatible Decomposition and Recomposition, as
 described in Unicode Standard Annex #15.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-unicode-segmentation-1.3
+(define-public rust-unicode-segmentation-1.6
   (package
     (name "rust-unicode-segmentation")
-    (version "1.3.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
@@ -12797,11 +14470,10 @@ described in Unicode Standard Annex #15.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a9jqg7rb1yq6w2xc9jgxcs111yk5vxm9afjfvykfnrmzk6z8rqr"))))
+         "1h7d48mzpi8hwf5cvnq07warkv86pvapzzzf32hvbjsk20yiagp8"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.7))))
     (home-page "https://github.com/unicode-rs/unicode-segmentation")
     (synopsis "Grapheme Cluster, Word and Sentence boundaries")
@@ -12810,6 +14482,21 @@ described in Unicode Standard Annex #15.")
 boundaries according to Unicode Standard Annex #29 rules.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-unicode-segmentation-1.3
+  (package
+    (inherit rust-unicode-segmentation-1.6)
+    (name "rust-unicode-segmentation")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-segmentation" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a9jqg7rb1yq6w2xc9jgxcs111yk5vxm9afjfvykfnrmzk6z8rqr"))))))
+
 (define-public rust-unicode-width-0.1
   (package
     (name "rust-unicode-width")
@@ -12845,13 +14532,10 @@ boundaries according to Unicode Standard Annex #29 rules.")
          (base32
           "0z09fn515xm7zyr0mmdyxa9mx2f7azcpv74pqmg611iralwpcvl2"))))
     (build-system cargo-build-system)
-    (home-page
-      "https://github.com/unicode-rs/unicode-xid")
+    (home-page "https://github.com/unicode-rs/unicode-xid")
     (synopsis "Determine Unicode XID related properties")
     (description "Determine whether characters have the XID_Start
 or XID_Continue properties according to Unicode Standard Annex #31.")
-    (properties '((hidden? . #t)))
-    ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-unicode-xid-0.1
@@ -12868,6 +14552,21 @@ or XID_Continue properties according to Unicode Standard Annex #31.")
          (base32
           "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"))))))
 
+(define-public rust-unicode-xid-0.0
+  (package
+    (inherit rust-unicode-xid-0.2)
+    (name "rust-unicode-xid")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unicode-xid" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1p5l9h3n3i53cp95fb65p8q3vbwib79ryd9z5z5h5kr9gl6qc7wc"))))))
+
 (define-public rust-unindent-0.1
   (package
     (name "rust-unindent")
@@ -12922,11 +14621,13 @@ whitespace from a string.")
          (base32
           "0zwwphsqkw5qaiqmjwngnfpv9ym85qcsyj7adip9qplzjzbn00zk"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-traitobject" ,rust-traitobject-0.1))))
     (home-page "https://tokio.rs")
     (synopsis "Traits and implementations for unchecked downcasting")
     (description
      "Traits and implementations for unchecked downcasting.")
-    (properties '((hidden? . #t)))
     (license license:expat)))
 
 (define-public rust-untrusted-0.7
@@ -13011,6 +14712,28 @@ untrusted inputs in Rust.")
         ("rust-rustc-test" ,rust-rustc-test-0.3)
         ("rust-serde-json" ,rust-serde-json-1.0))))))
 
+(define-public rust-users-0.9
+  (package
+    (name "rust-users")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "users" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1kxl3y2hcrqqip7jpqn5mz7xlpbwmmpfmaza0xnyrhx0mrkl4by7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/ogham/rust-users")
+    (synopsis "Library for getting information on Unix users and groups")
+    (description "This package provides a library for getting information on
+Unix users and groups.")
+    (license license:expat)))
+
 (define-public rust-utf-8-0.7
   (package
     (name "rust-utf-8")
@@ -13059,6 +14782,25 @@ untrusted inputs in Rust.")
      "Convert ranges of Unicode codepoints to UTF-8 byte ranges.")
     (license (list license:expat license:unlicense))))
 
+(define-public rust-utf8parse-0.1
+  (package
+    (name "rust-utf8parse")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "utf8parse" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zamsj2986shm4x9zncjf2m5qy9scaw7qnxw4f89b2afpg6a8wl7"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/jwilm/vte")
+    (synopsis "Table-driven UTF-8 parser")
+    (description "This package provides a table-driven UTF-8 parser.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-uuid-0.7
   (package
     (name "rust-uuid")
@@ -13266,10 +15008,16 @@ specified across Unix and Windows platforms.")
          (base32
           "07ppalpvxkf8cnqr64np422792y4z5bs9m8b4nrflh5rm17wjn4n"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-same-file" ,rust-same-file-1.0)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-winapi-util" ,rust-winapi-util-0.1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page  "https://github.com/BurntSushi/walkdir")
     (synopsis "Recursively walk a directory")
     (description "Recursively walk a directory.")
-    (properties '((hidden? . #t)))
     (license (list license:unlicense
                    license:expat))))
 
@@ -13339,7 +15087,7 @@ in Rust.")
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bumpalo" ,rust-bumpalo-2.5)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-proc-macro2" ,rust-proc-macro2-0.4)
         ("rust-quote" ,rust-quote-1.0)
@@ -13373,7 +15121,7 @@ in Rust.")
          ,rust-futures-channel-preview-0.3)
         ("rust-futures-util-preview" ,rust-futures-util-preview-0.3)
         ("rust-js-sys" ,rust-js-sys-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2))
        #:cargo-development-inputs
        (("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
@@ -13776,6 +15524,78 @@ color in a Windows console.")
      "Contains function definitions for the Windows API library ws2_32.")
     (license license:expat)))
 
+(define-public rust-x11-2
+  (package
+    (name "rust-x11")
+    (version "2.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0dg2d0yrqmwg6prpxkw3vpmwzwxnaki2cn0v64ylh5gp4cqpws9r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/erlepereira/x11-rs.git")
+    (synopsis "X11 library bindings for Rust")
+    (description "X11 library bindings for Rust.")
+    (license license:cc0)))
+
+(define-public rust-x11-clipboard-0.4
+  (package
+    (name "rust-x11-clipboard")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11-clipboard" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0nqdnswiyj28b1izjp5rzbc67cxpb5c8p4vh1xyndkirzs84vqqk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Tests require display server.
+       #:cargo-inputs (("rust-xcb" ,rust-xcb-0.9))))
+    (native-inputs
+     `(("python" ,python)))
+    (home-page "https://github.com/quininer/x11-clipboard")
+    (synopsis "x11 clipboard support for Rust")
+    (description "This package provides x11 clipboard support for Rust.")
+    (license license:expat)))
+
+(define-public rust-x11-dl-2
+  (package
+    (name "rust-x11-dl")
+    (version "2.18.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "x11-dl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0n1w837xagxqgwx2880d7c9ks6l3g1kk00yd75afdaiv58sf2rdy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-maybe-uninit" ,rust-maybe-uninit-2.0)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+    (home-page "https://github.com/erlepereira/x11-rs.git")
+    (synopsis "X11 library bindings for Rust")
+    (description "This package provides X11 library bindings for Rust.")
+    (license license:cc0)))
+
 (define-public rust-xattr-0.2
   (package
     (name "rust-xattr")
@@ -13803,6 +15623,40 @@ extended attributes.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-xcb-0.9
+  (package
+    (name "rust-xcb")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xcb" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19i2pm8alpn2f0m4jg8bsw6ckw8irj1wjh55h9pi2fcb2diny1b2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Building all the features tests the code.
+       #:cargo-build-flags '("--features" "debug_all")
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-x11" ,rust-x11-2))))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxcb" ,libxcb)
+       ("xcb-proto" ,xcb-proto)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (home-page "https://github.com/rtbo/rust-xcb")
+    (synopsis "Rust bindings and wrappers for XCB")
+    (description
+     "This package provides Rust bindings and wrappers for XCB.")
+    (license license:expat)))
+
 (define-public rust-xdg-2.2
   (package
     (name "rust-xdg")
@@ -13825,6 +15679,26 @@ to XDG Base Directory specification")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-xml-rs-0.8
+  (package
+    (name "rust-xml-rs")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xml-rs" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1db4v716rbpgjiasaim2s17rmvsfcq1qzwg6nji6mdf5k34i46sl"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/netvl/xml-rs")
+    (synopsis "XML library in pure Rust")
+    (description "An XML library in pure Rust.")
+    (license license:expat)))
+
 (define-public rust-yaml-rust-0.4
   (package
     (name "rust-yaml-rust")
@@ -13850,3 +15724,45 @@ to XDG Base Directory specification")
     (description
      "The missing YAML 1.2 parser for rust.")
     (license (list license:asl2.0 license:expat))))
+
+(define-public rust-yaml-rust-0.3
+  (package
+    (inherit rust-yaml-rust-0.4)
+    (name "rust-yaml-rust")
+    (version "0.3.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "yaml-rust" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "14m9dzwb8fb05f4jjb4nqp49rxd9c5vcmwpv3a04d2y5iphncqz6"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clippy" ,rust-clippy-0.0)
+        ("rust-linked-hash-map" ,rust-linked-hash-map-0.3))))))
+
+(define-public rust-zoneinfo-compiled-0.4
+  (package
+    (name "rust-zoneinfo-compiled")
+    (version "0.4.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "zoneinfo_compiled" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1.3)
+        ("rust-datetime" ,rust-datetime-0.4))))
+    (home-page "https://github.com/rust-datetime/zoneinfo-compiled/")
+    (synopsis "Library for parsing compiled zoneinfo files")
+    (description
+     "This package provides a library for parsing compiled zoneinfo files.")
+    (license license:expat)))
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 852a262a7c..f2d0e9377d 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -133,7 +133,7 @@ communication, encryption, decryption, signatures, etc.")
 (define-public signify
   (package
     (name "signify")
-    (version "27")
+    (version "28")
     (home-page "https://github.com/aperezdc/signify")
     (source (origin
               (method url-fetch)
@@ -141,13 +141,12 @@ communication, encryption, decryption, signatures, etc.")
                                   "/download/v" version "/signify-" version ".tar.xz"))
               (sha256
                (base32
-                "0ngjsqz95yb0knlw9zs02fnclif40s63r1mydgiv17ii3mds82df"))))
+                "05v970glhpaxv0m4cnidfxsdnsjp12nf2crzrdq4ml7g5a3g6hdq"))))
     (build-system gnu-build-system)
     ;; TODO Build with libwaive (described in README.md), to implement something
     ;; like OpenBSD's pledge().
     (arguments
-     `(#:tests? #f ; no test suite
-       #:make-flags
+     `(#:make-flags
        (list "CC=gcc"
              (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index d8c1d11944..b7213f73b3 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -673,14 +673,14 @@ printer/driver specific, but spooler-independent PPD file.")
 (define-public foo2zjs
   (package
     (name "foo2zjs")
-    (version "20190909")
+    (version "20200207")
     (source (origin
               (method url-fetch)
               ;; XXX: This is an unversioned URL!
               (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
               (sha256
                (base32
-                "1nn84c045mbv6yzpjfggc6152bvgrmcxiyvgz9v2w3sws7ihshrm"))))
+                "0pf1sm29gnrhhpyvq95jskvr874h5r4kls9w10gc24z23fjmr5zx"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 8ba37eeafa..9f72060385 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1133,7 +1133,7 @@ including field and record folding.")))
 (define-public rocksdb
   (package
     (name "rocksdb")
-    (version "6.5.2")
+    (version "6.6.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1142,7 +1142,7 @@ including field and record folding.")))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01f5lcrcr809jhkkvxhv743hwpcxszj4r30hy9qy1i0mvjky02vf"))
+                "1h7y31b05w4vv4v509l368j9qlbv5assmdq9hp2788zipqbpywc0"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index af6cef71d3..cd0a5db93c 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -219,15 +219,14 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
 (define-public grammalecte
   (package
     (name "grammalecte")
-    (version "1.6.0")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri (string-append "https://grammalecte.net/grammalecte/zip/"
                            "Grammalecte-fr-v" version ".zip"))
        (sha256
-        (base32
-         "0kz13gx2hd23xd6bfr4z73lh18slj3vbvs2xcb7qvhramxjqzqcn"))))
+        (base32 "0wb126mqnq9ns6gzmhzljc6iqywdkpzvr8xny5s3khd10ki4lxl3"))))
     (build-system python-build-system)
     (home-page "https://grammalecte.net")
     (synopsis "French spelling and grammar checker")
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 998a71aeab..3b3540b5b0 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -44,6 +44,7 @@
   #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages mono)
   #:use-module (gnu packages ocaml)
   #:use-module (gnu packages package-management)
@@ -217,9 +218,80 @@
        "Diffoscope tries to get to the bottom of what makes files or directories
 different.  It recursively unpacks archives of many kinds and transforms
 various binary formats into more human readable forms to compare them.  It can
-compare two tarballs, ISO images, or PDFs just as easily.")
+compare two tarballs, ISO images, or PDFs just as easily.
+
+Diffoscope has many optional dependencies; @code{diffoscope
+--list-missing-tools guix} will display optional packages to
+install.")
       (license license:gpl3+))))
 
+(define-public reprotest
+  (package
+    (name "reprotest")
+    (version "0.7.13")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://salsa.debian.org/reproducible-builds/reprotest.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (patches (search-patches "reprotest-support-guix.patch"))
+       (sha256
+        (base32
+         "0jj9sqxbdpypnc0y8md352wwzh1by6nyhmx5fwqnvrbznrng332f"))))
+    (inputs
+     `(("python-debian" ,python-debian)
+       ("python-distro" ,python-distro)
+       ("python-libarchive-c", python-libarchive-c)
+       ("python-rstr" ,python-rstr)))
+    (native-inputs
+     `(("diffoscope" ,diffoscope)
+       ("help2man" ,help2man)
+       ("libfaketime" ,libfaketime)
+       ("python-coverage" ,python-coverage)
+       ("python-docutils" ,python-docutils)
+       ("python-pytest " ,python-pytest)
+       ("python-tlsh" ,python-tlsh)
+       ("python-tox" ,python-tox)
+       ("unzip" ,unzip)
+       ("xxd" ,xxd)))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Neither glibc-locales nor glibc-utf8-locales have the C.UTF-8
+         ;; locale or several other locales used in reprotest.
+         (add-after 'unpack 'adjust-locales
+           (lambda _
+             (substitute* "reprotest/build.py"
+               (("'C.UTF-8'") "'en_US.UTF-8'")
+               (("'ru_RU.CP1251'") "'ru_RU.KOI8-R'")
+               (("'kk_KZ.RK1048'") "'kk_KZ'"))
+             (substitute* "reprotest/lib/adt_testbed.py"
+               (("export LANG=C.UTF-8") "export LANG=en_US.UTF-8"))
+             #t))
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((mandir1 (string-append
+                              (assoc-ref outputs "out") "/share/man/man1"))
+                    (docdir (string-append
+                             (assoc-ref outputs "out") "/share/doc/" ,name "-" ,version)))
+               (invoke "make" "-C" "doc")
+               (mkdir-p mandir1)
+               (install-file "doc/reprotest.1" mandir1)
+               (mkdir-p docdir)
+               (install-file "./README.rst" docdir)
+               (install-file "./README-dev.rst" docdir))
+             #t)))))
+    (home-page "https://salsa.debian.org/reproducible-builds/reprotest")
+    (synopsis "Build software and check it for reproducibility")
+    (description "Reprotest builds the same source code twice in different
+environments, and then checks the binaries produced by each build for
+differences.  If any are found, then diffoscope or diff is used to display
+them in detail for later analysis.")
+    (license (list license:gpl3+ license:gpl2+))))
+
 (define-public trydiffoscope
  (package
    (name "trydiffoscope")
diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index 10cdbf31a8..1fb5b5267e 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,9 +19,15 @@
 
 (define-module (gnu packages djvu)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages xorg))
 
 (define-public djvulibre
   (package
@@ -48,3 +55,48 @@
 including viewers, browser plugins, decoders, simple encoders, and
 utilities.")
     (license license:gpl2+)))
+
+(define-public djview
+  (package
+    (name "djview")
+    (version "4.10.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/djvu/DjView/"
+                           (version-major+minor version) "/"
+                           "djview-" version ".tar.gz"))
+       (sha256
+        (base32 "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("djvulibre" ,djvulibre)
+       ("glib" ,glib)
+       ("libxt" ,libxt)
+       ("libtiff" ,libtiff)
+       ("qtbase" ,qtbase)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-desktop-file
+           ;; Executable is "djview", not "djview4".
+           (lambda _
+             (substitute* "desktopfiles/djvulibre-djview4.desktop"
+               (("Exec=djview4 %f") "Exec=djview %f"))
+             #t)))))
+    (home-page "http://djvu.sourceforge.net/djview4.html")
+    (synopsis "Viewer for the DjVu image format")
+    (description "DjView is a standalone viewer for DjVu files.
+
+Its features include navigating documents, zooming and panning page images,
+producing and displaying thumbnails, displaying document outlines, searching
+documents for particular words in the hidden text layer, copying hidden text
+to the clipboard, saving pages and documents as bundled or indirect multi-page
+files, and printing page and documents.
+
+The viewer can simultaneously display several pages using a side-by-side or
+a continuous layout.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 7c52722cb6..3a42a98bc4 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -407,7 +407,6 @@ to result in system-wide compromise.")
      `(("expat" ,expat)
        ("libevent" ,libevent)
        ("protobuf" ,protobuf)
-       ("python" ,python-3)
        ("python-wrapper" ,python-wrapper)
        ("openssl" ,openssl)))
     (arguments
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 948cc30cf6..1f832a25e5 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -46,7 +46,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages virtualization))
 
-(define %docker-version "18.09.5")
+(define %docker-version "19.03.5")
 
 (define-public python-docker-py
   (package
@@ -313,12 +313,9 @@ built-in registry server of Docker.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0cirpd9l2qazp2jyanwzvrkx2m98nksjdvn43ff38p89w6133ipb"))
+        (base32 "1dlknwn0fh82nbzdzxdk6pfhqwph9vcw3vs3111wfr19y5hwncq9"))
        (patches
-        (search-patches "docker-engine-test-noinstall.patch"
-                        "docker-fix-tests.patch"
-                        "docker-use-fewer-modprobes.patch"
-                        "docker-adjust-tests-for-changes-in-go.patch"))))
+        (search-patches "docker-fix-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules
@@ -419,6 +416,7 @@ built-in registry server of Docker.")
                                                   "/" relative-path
                                                   "\"")) ...)))))
                  (substitute-LookPath*
+                  ("containerd" "containerd" "bin/containerd")
                   ("ps" "procps" "bin/ps")
                   ("mkfs.xfs" "xfsprogs" "bin/mkfs.xfs")
                   ("lvmdiskscan" "lvm2" "sbin/lvmdiskscan")
@@ -492,6 +490,14 @@ built-in registry server of Docker.")
              (delete-file "daemon/graphdriver/btrfs/btrfs_test.go")
              (delete-file "daemon/graphdriver/overlay/overlay_test.go")
              (delete-file "daemon/graphdriver/overlay2/overlay_test.go")
+             (delete-file "pkg/chrootarchive/archive_unix_test.go")
+             (delete-file "daemon/container_unix_test.go")
+             ;; This file uses cgroups and /proc.
+             (delete-file "pkg/sysinfo/sysinfo_linux_test.go")
+             ;; This file uses cgroups.
+             (delete-file "runconfig/config_test.go")
+             ;; This file uses /var.
+             (delete-file "daemon/oci_linux_test.go")
              #t))
          (replace 'configure
            (lambda _
@@ -558,6 +564,7 @@ built-in registry server of Docker.")
     (native-inputs
      `(("eudev" ,eudev)      ; TODO: Should be propagated by lvm2 (.pc -> .pc)
        ("go" ,go)
+       ("gotestsum" ,gotestsum)
        ("pkg-config" ,pkg-config)))
     (synopsis "Docker container component library, and daemon")
     (description "This package provides a framework to assemble specialized
@@ -579,7 +586,7 @@ provisioning etc.")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "0mxxjzkwdny8p2dmyjich7x1gn7hdlfppzjy2skk2k5bwv7nxpmi"))))
+       (base32 "07ldz46y74b3la4ah65v5bzbfx09yy6kncvxrr0zfx0s1214ar3m"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/docker/cli"
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index 75f2b80e5f..5b20d6d013 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015, 2017, 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -52,9 +54,16 @@
                           ;; Otherwise it tries to install service file
                           ;; to "dbus" store directory.
                           (string-append "SERVICEDIR_DBUS=" %output
-                                         "/share/dbus-1/services"))
+                                         "/share/dbus-1/services")
+                          "dunstify")
        #:phases (modify-phases %standard-phases
-                  (delete 'configure))))
+                  (delete 'configure)
+                  (add-after 'install 'install-dunstify
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (install-file "dunstify"
+                                      (string-append out "/bin")))
+                      #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("perl" ,perl)                   ; for pod2man
@@ -65,6 +74,7 @@
        ("glib" ,glib)
        ("cairo" ,cairo)
        ("pango" ,pango)
+       ("libnotify" ,libnotify)         ; for dunstify
        ("libx11" ,libx11)
        ("libxscrnsaver" ,libxscrnsaver)
        ("libxinerama" ,libxinerama)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index b0297e9075..3ae1ec2192 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
 (define-module (gnu packages education)
   #:use-module (ice-9 regex)
   #:use-module (gnu packages)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
@@ -40,14 +42,18 @@
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
@@ -126,7 +132,7 @@ of categories with some of the activities available in that category.
 (define-public gcompris-qt
   (package
     (name "gcompris-qt")
-    (version "0.96")
+    (version "0.97")
     (source
      (origin
        (method url-fetch)
@@ -134,11 +140,16 @@ of categories with some of the activities available in that category.
              "https://gcompris.net/download/qt/src/gcompris-qt-"
              version ".tar.xz"))
        (sha256
-        (base32 "06483il59l46ny2w771sg45dgzjwv1ph7vidzzbj0wb8wbk2rg52"))))
+        (base32 "0hl3a1jjnrpnbqkpx3rl3fl86yfv503lh48djb888hplvr4nf747"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-test
+           (lambda _
+             (substitute* "tests/core/CMakeLists.txt"
+               (("DownloadManagerTest\\.cpp") "#"))
+             #t))
          (add-before 'check 'start-xorg-server
            (lambda* (#:key inputs #:allow-other-keys)
              ;; The test suite requires a running X server.
@@ -167,6 +178,7 @@ of categories with some of the activities available in that category.
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("gettext" ,gettext-minimal)
+       ("kdoctools" ,kdoctools)
        ("perl" ,perl)
        ("qttools" ,qttools)
        ("xorg-server" ,xorg-server-for-tests)))
@@ -715,6 +727,103 @@ languages and keyboard layouts, and typing statistics are used to dynamically
 adjust the level of difficulty.")
     (license license:gpl2)))
 
+(define-public anki
+  (package
+    (name "anki")
+    ;; Later versions have dependencies on npm packages not yet in Guix.
+    (version "2.1.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://apps.ankiweb.net/downloads/archive/anki-"
+                           version "-source.tgz"))
+       (sha256
+        (base32 "1gfr51rnllkyzli73p4r51h5ypzfa3m7lic3m3rzpywmqwrxs07k"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f                      ;no check target
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 match))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (add-after 'install 'wrap
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                   ;; List of paths to the site-packages directories of Python
+                   ;; library inputs.
+                   (site-packages
+                    (map (lambda (pyinput)
+                           (string-append
+                            (cdr pyinput)
+                            "/lib/python"
+                            ;; Calculate the python version to avoid breaking
+                            ;; with future 3.X releases.
+                            ,(version-major+minor
+                              (package-version python-wrapper))
+                            "/site-packages"))
+                         (filter (match-lambda
+                                   ((label . _)
+                                    (string-prefix? "python-" label)))
+                                 inputs)))
+                   (qtwebengineprocess
+                    (string-append (assoc-ref inputs "qtwebengine")
+                                   "/lib/qt5/libexec/QtWebEngineProcess")))
+               ;; The program fails to find the QtWebEngineProcess program, so
+               ;; we set QTWEBENGINEPROCESS_PATH to help it.  PYTHONPATH is
+               ;; wrapped to avoid declaring Python libraries as propagated
+               ;; inputs.
+               (for-each (lambda (program)
+                           (wrap-program program
+                             `("QTWEBENGINEPROCESS_PATH" =
+                               (,qtwebengineprocess))
+                             `("PYTHONPATH" = ,site-packages)))
+                         (find-files bin ".")))
+             #t)))))
+    (native-inputs
+     `(("xdg-utils" ,xdg-utils)))
+    (inputs
+     `(("lame" ,lame)
+       ("mpv" ,mpv)
+       ("python" ,python-wrapper)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)
+       ("python-decorator" ,python-decorator)
+       ("python-distro" ,python-distro)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-markdown" ,python-markdown)
+       ("python-pyaudio" ,python-pyaudio)
+       ;; `python-pyqtwebengine' must precede `python-pyqt' in PYTHONPATH.
+       ("python-pyqtwebengine" ,python-pyqtwebengine)
+       ("python-pyqt" ,python-pyqt)
+       ("python-requests" ,python-requests)
+       ("python-send2trash" ,python-send2trash)
+       ("python-sip" ,python-sip)
+       ;; `qtwebengine' is included in `pyqtwebengine', included here for easy
+       ;; wrapping.
+       ("qtwebengine" ,qtwebengine)))
+    (home-page "https://apps.ankiweb.net/")
+    (synopsis "Powerful, intelligent flash cards")
+    (description "Anki is a program which makes remembering things
+easy.  Because it's a lot more efficient than traditional study
+methods, you can either greatly decrease your time spent studying, or
+greatly increase the amount you learn.
+
+Anyone who needs to remember things in their daily life can benefit
+from Anki.  Since it is content-agnostic and supports images, audio,
+videos and scientific markup (via LaTeX), the possibilities are
+endless.  For example:
+@itemize
+@item Learning a language
+@item Studying for medical and law exams
+@item Memorizing people's names and faces
+@item Brushing up on geography
+@item Mastering long poems
+@item Even practicing guitar chords!
+@end itemize")
+    (license license:agpl3+)))
+
 (define-public t4k-common
   (package
     (name "t4k-common")
diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm
index 75caa54296..5fa66210db 100644
--- a/gnu/packages/elf.scm
+++ b/gnu/packages/elf.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Mark Wielaard <mark@klomp.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,9 +55,10 @@
     (build-system gnu-build-system)
 
     ;; Separate programs because that's usually not what elfutils users want,
-    ;; and because they duplicate what Binutils provides.
+    ;; and because they duplicate what Binutils provides (but are named
+    ;; differently, using the eu- prefix and can be installed in parallel).
     (outputs '("out"                           ; libelf.so, elfutils/*.h, etc.
-               "bin"))                         ; ld, nm, objdump, etc.
+               "bin"))                         ; eu-nm, eu-objdump, etc.
 
     (arguments
      ;; Programs don't have libelf.so in their RUNPATH and libraries don't
@@ -84,11 +86,21 @@
     (native-inputs `(("m4" ,m4)))
     (inputs `(("zlib" ,zlib)))
     (home-page "https://sourceware.org/elfutils/")
-    (synopsis "Linker and ELF manipulation tools")
+    (synopsis "Collection of utilities and libraries to handle ELF files and
+DWARF data")
     (description
-     "This package provides command-line tools to manipulate binaries in the
-Executable and Linkable Format (@dfn{ELF}).  This includes @command{ld},
-@command{ar}, @command{objdump}, @command{addr2line}, and more.")
+     "Elfutils is a collection of utilities and libraries to read, create and
+modify Executable and Linkable Format (@dfn{ELF}) binary files, find and
+handle Debugging With Arbitrary Record Formats (@dfn{DWARF}) debug data,
+symbols, thread state and stacktraces for processes and core files on
+GNU/Linux.  Elfutils includes @file{libelf} for manipulating ELF files,
+@file{libdw} for inspecting DWARF data and process state and utilities like
+@command{eu-stack} (to show backtraces), @command{eu-nm} (for listing symbols
+from object files), @command{eu-size} (for listing the section sizes of an
+object or archive file), @command{eu-strip} (for discarding symbols),
+@command{eu-readelf} (to see the raw ELF file structures),
+@command{eu-elflint} (to check for well-formed ELF files),
+@command{eu-elfcompress} (to compress or decompress ELF sections), and more.")
 
     ;; Libraries are dual-licensed LGPLv3.0+ | GPLv2, and programs are GPLv3+.
     (license lgpl3+)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e3100cc62f..50cb6b4632 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
@@ -163,14 +163,16 @@
 (define-public emacs-geiser
   (package
     (name "emacs-geiser")
-    (version "0.10")
+    (version "0.11")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://savannah/geiser/" version
-                                 "/geiser-" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://gitlab.com/jaor/geiser/")
+                   (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "0pj3l7p8d60c9b4vfprnv6g5l61d74pls4b5dvd84cn4ky9mzwjv"))))
+               "0fb2h984hn7bnyiziplp7kgk29zdzc9yainsv0k1li436irlp9dd"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -183,7 +185,11 @@
                                      "geiser-autoloads.el"))
              #t)))))
     (inputs `(("guile" ,guile-2.2)))
-    (native-inputs `(("emacs" ,emacs-minimal)))
+    (native-inputs
+     `(("emacs" ,emacs-minimal)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("texinfo" ,texinfo)))
     (home-page "https://nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Guile and Racket hacking")
     (description
@@ -1982,6 +1988,27 @@ filters, new key bindings and faces.  It can be enabled by
 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
     (license license:gpl3+)))
 
+(define-public emacs-djvu
+  (package
+    (name "emacs-djvu")
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/"
+                           "djvu-" version ".el"))
+       (sha256
+        (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/djvu.html")
+    (synopsis "Edit and view Djvu files via djvused")
+    (description
+     "This package is a front end for the command-line program djvused from
+DjVuLibre, see @url{http://djvu.sourceforge.net/}.  It assumes you have the
+programs @command{djvused}, @command{djview}, @command{ddjvu}, and
+@command{djvm} installed.")
+    (license license:gpl3+)))
+
 (define-public emacs-pdf-tools
   (package
     (name "emacs-pdf-tools")
@@ -7353,8 +7380,8 @@ sly-quickload command that prompts the user for a package to install. ")
       (license license:gpl3+))))
 
 (define-public emacs-sly-asdf
-  (let ((commit "4e323bc28da2f07fd799b6a31b94fd93848b5f3c")
-        (revision "2"))
+  (let ((commit "ad248056ded3099b0528b6111ba335e835d9e5a7")
+        (revision "3"))
     (package
       (name "emacs-sly-asdf")
       (version (git-version "0.1.0" revision commit))
@@ -7368,10 +7395,11 @@ sly-quickload command that prompts the user for a package to install. ")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "16sc33jhc6ik4ilsyqc3cjpi6v0wdmwjlwrzjwd6yym11bscsmad"))))
+           "0lip0spmglny3y612pxn3rfnpdaj12c9f7ya7bprryg2gvcdippa"))))
       (build-system emacs-build-system)
       (propagated-inputs
-       `(("emacs-sly" ,emacs-sly)))
+       `(("emacs-sly" ,emacs-sly)
+         ("emacs-popup" ,emacs-popup)))
       (arguments
        '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
       (synopsis "ASDF contrib for SLY")
@@ -8050,13 +8078,13 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update it as
     ;; well.
-    (version "9.3.2")
+    (version "9.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
        (sha256
-        (base32 "1275s3hzyka2wwxl6nc2sndnwyl7kbc1nnl0hrznxb3wpy2abfd6"))))
+        (base32 "0yafckcx5ka2rpmv24x7ns6f3s1h216x2lbgaxsf1dmklbjcfvwv"))))
     (build-system emacs-build-system)
     (home-page "https://orgmode.org/")
     (synopsis "Outline-based notes management and organizer")
@@ -8070,14 +8098,14 @@ programming and reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20200126")
+    (version "20200206")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://orgmode.org/elpa/"
                            "org-plus-contrib-" version ".tar"))
        (sha256
-        (base32 "08yik0i8ya2x5j4vsnwxdcdlcxbiq58lvy30vcbdbf0hqrd40kjv"))))
+        (base32 "1fdxh8zgjnb500wkcl0bc0fdzbsln6p044b4s4nz85wkfw0jkfs5"))))
     (arguments
      `(#:modules ((guix build emacs-build-system)
                   (guix build utils)
@@ -8094,11 +8122,11 @@ programming and reproducible research.")
                      (map basename (find-files out)))
                     (org+contrib-files
                      (map basename (find-files org)))
-                    (duplicates (lset-intersection
-                                 string=? contrib-files org+contrib-files)))
+                    (duplicates (lset-intersection string=?
+                                                   contrib-files
+                                                   org+contrib-files)))
                (with-directory-excursion
-                   (string-append
-                    out "/share/emacs/site-lisp")
+                   (string-append out "/share/emacs/site-lisp")
                  (for-each delete-file duplicates))
                #t))))))
     (propagated-inputs
@@ -8574,35 +8602,35 @@ been adapted to work with mu4e.")
 (define-public emacs-yasnippet
   (package
     (name "emacs-yasnippet")
-    (version "0.13.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/joaotavora/yasnippet.git")
-                    (commit version)))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "0fkkplycrw8f8r30hjjxl1wm7p2irq2ipzzc1g7cc52abaal796p"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; YASnippet expects a "snippets" subdirectory in the same
-                  ;; directory as yasnippet.el, but we don't install it
-                  ;; because it's a git submodule pointing to an external
-                  ;; repository.  Adjust `yas-snippet-dirs' to prevent
-                  ;; warnings about a missing directory.
-                  (substitute* "yasnippet.el"
-                    (("^ +'yas-installed-snippets-dir\\)\\)\n")
-                     "))\n"))
-                  #t))))
+    (version "0.14.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/joaotavora/yasnippet.git")
+             (commit version)))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; YASnippet expects a "snippets" subdirectory in the same
+           ;; directory as yasnippet.el, but we don't install it because it's
+           ;; a git submodule pointing to an external repository.  Adjust
+           ;; `yas-snippet-dirs' to prevent warnings about a missing
+           ;; directory.
+           (substitute* "yasnippet.el"
+             (("^ +'yas-installed-snippets-dir\\)\\)\n")
+              "))\n"))
+           #t))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
        #:test-command '("emacs" "--batch"
                         "-l" "yasnippet-tests.el"
                         "-f" "ert-run-tests-batch-and-exit")
-       ;; FIXME: one failing test
+       ;; FIXME: one failing test.
        #:phases
        (modify-phases %standard-phases
          (add-before 'check 'make-tests-writable
@@ -8612,11 +8640,10 @@ been adapted to work with mu4e.")
          (add-before 'check 'delete-rebinding-test
            (lambda _
              (emacs-batch-edit-file "yasnippet-tests.el"
-               `(progn (progn (goto-char (point-min))
-                              (re-search-forward
-                               "ert-deftest test-rebindings")
-                              (beginning-of-line)
-                              (kill-sexp))
+               `(progn (goto-char (point-min))
+                       (re-search-forward "ert-deftest test-rebindings")
+                       (beginning-of-line)
+                       (kill-sexp)
                        (basic-save-buffer)))
              #t)))))
     (home-page "https://github.com/joaotavora/yasnippet")
@@ -8627,50 +8654,40 @@ abbreviation and automatically expand it into function templates.")
     (license license:gpl3+)))
 
 (define-public emacs-yasnippet-snippets
-  (let ((commit "885050d34737e2fb36a3e7759d60c09347bd4ce0")
-        (revision "1"))
-    (package
-      (name "emacs-yasnippet-snippets")
-      (version (string-append "1-" revision "." (string-take commit 8)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/AndreaCrotti/yasnippet-snippets")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1m935zgglw0iakzrixld5rcjz3wnj84f8wy2mvc3pggjri9l0qr9"))))
-      (build-system trivial-build-system)
-      (arguments
-       `(#:modules ((ice-9 ftw)
-                    (ice-9 regex)
-                    (guix build utils))
-         #:builder
-         (begin
-           (use-modules (ice-9 ftw)
-                        (ice-9 regex)
-                        (guix build utils))
-           (with-directory-excursion (assoc-ref %build-inputs "source")
-             (for-each (lambda (dir)
-                         (copy-recursively
-                          dir
-                          (string-append %output
-                                         "/share/emacs/yasnippet-snippets/"
-                                         dir)))
-                       (scandir "." (lambda (fname)
-                                      (and (string-match "-mode$" fname)
-                                           (directory-exists? fname))))))
-           #t)))
-      (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
-      (synopsis "Collection of YASnippet snippets for many languages")
-      (description
-       "Provides Andrea Crotti's collection of YASnippet snippets.  After installation,
+  (package
+    (name "emacs-yasnippet-snippets")
+    (version "0.20")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AndreaCrotti/yasnippet-snippets")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((source (assoc-ref %build-inputs "source"))
+                (out (assoc-ref %outputs "out"))
+                (snippet-dir
+                 (string-append out "/share/emacs/yasnippet-snippets/")))
+           (with-directory-excursion source
+             (mkdir-p snippet-dir)
+             (copy-recursively "snippets" snippet-dir)))
+         #t)))
+    (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
+    (synopsis "Collection of YASnippet snippets for many languages")
+    (description
+     "Provides Andrea Crotti's collection of YASnippet snippets.  After installation,
 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
 To make YASnippet aware of these snippets, add the above directory to
 @code{yas-snippet-dirs}.")
-      (license license:expat))))
+    (license license:gpl3+)))
 
 (define-public emacs-helm-c-yasnippet
   (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
@@ -12604,8 +12621,8 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-bibtex
-  (let ((commit "8ed898fb5a68f18e9bb9973832a5c1f8abcfc463")
-        (revision "1"))
+  (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
+        (revision "2"))
     (package
       (name "emacs-helm-bibtex")
       (version (string-append "2.0.0" "-" revision "."
@@ -12619,7 +12636,7 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "14lyx0vbqr97p3anzrsp7m3q0kqclyjcdwplpraim403fcklzbnz"))))
+           "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-helm" ,emacs-helm)
@@ -21374,3 +21391,64 @@ sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
 sense in the @samp{To} and @samp{Cc} headers).  When in the message body, this
 executes a different function (default: @code{indent-relative}).")
       (license license:gpl2+))))
+
+(define-public emacs-gnus-harvest
+  (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
+        (revision "0"))
+    (package
+      (name "emacs-gnus-harvest")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jwiegley/gnus-harvest.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
+      (build-system emacs-build-system)
+      (inputs
+       `(("sqlite" ,sqlite)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'build 'patch-exec-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((sqlite (assoc-ref inputs "sqlite"))
+                     (file "gnus-harvest.el"))
+                 (make-file-writable file)
+                 (emacs-substitute-variables file
+                   ("gnus-harvest-sqlite-program"
+                    (string-append sqlite "/bin/sqlite3"))))
+               #t)))))
+      (home-page "https://github.com/jwiegley/gnus-harvest")
+      (synopsis
+       "Harvest email addresses from read/written Gnus articles")
+      (description "@code{gnus-harvest} notices email address in every message
+or post you read or write, and collects them in a SQLite database, which can
+be easily and quickly queried to determine the completion list.  It optionally
+uses BBDB and Message-X.")
+      (license license:gpl3+))))
+
+(define-public emacs-auto-dictionary-mode
+  (package
+    (name "emacs-auto-dictionary-mode")
+    (version "1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/nschum/auto-dictionary-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
+    (build-system emacs-build-system)
+    (home-page "http://nschum.de/src/emacs/auto-dictionary/")
+    (synopsis "Automatic dictionary switcher for Emacs spell checking")
+    (description "@code{auto-dictionary} is a minor mode that hooks into
+Flyspell's on-the-fly spell checking and extends these checks to also detect
+language.  Auto-dictionary then sets @code{ispell-dictionary} to use the
+detected language.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index a86ae0efde..e2c67e9126 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -249,7 +249,7 @@ from the jfsutils package.  It is meant to be used in initrds.")
 (define-public disorderfs
   (package
     (name "disorderfs")
-    (version "0.5.6")
+    (version "0.5.8")
     (source
      (origin
        (method git-fetch)
@@ -259,7 +259,7 @@ from the jfsutils package.  It is meant to be used in initrds.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1zn2ydap8k9fwjl3ivgrg6l32s5p4ik6ca6j1idp7c77znlv6cpp"))))
+         "0pk9i0dycjq0wl6dp37r2hbadgpgmzbmjk2xpbjl36x4yrm4jns8"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -274,7 +274,7 @@ from the jfsutils package.  It is meant to be used in initrds.")
        #:test-target "test"
        ;; FIXME: Tests require 'run-parts' which is not in Guix yet.
        #:tests? #f))
-    (home-page "https://github.com/ReproducibleBuilds/disorderfs")
+    (home-page "https://salsa.debian.org/reproducible-builds/disorderfs")
     (synopsis "FUSE file system that introduces non-determinism")
     (description
      "An overlay FUSE file system that introduces non-determinism
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 190e5cbbdc..990298ce3f 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -97,7 +97,7 @@
 (define-public bitcoin-core
   (package
     (name "bitcoin-core")
-    (version "0.18.1")
+    (version "0.19.0.1")
     (source (origin
              (method url-fetch)
              (uri
@@ -105,7 +105,7 @@
                              version "/bitcoin-" version ".tar.gz"))
              (sha256
               (base32
-               "15mz0gmm058gmq2gdpffbw25jpv7mksyhyfws6i7mqvrapqr6zaw"))))
+               "1172dl4b8h2a80ilk9sfgbl8yi55k6hs4b1m07nic2ls4irgkjbs"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 358c72f07a..7297c277f1 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2019 Alva <alva@skogen.is>
 ;;; Copyright © 2019 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Damien Cassou <damien@cassou.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1563,3 +1564,24 @@ have been designed to be very distinguishable from each other.")
 displays (7SEG, 14SEG).  DSEG includes the roman alphabet and symbol glyphs.
 This package provides the TrueType fonts.")
     (license license:silofl1.1)))
+
+(define-public font-jetbrains-mono
+  (package
+    (name "font-jetbrains-mono")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://download.jetbrains.com/fonts/"
+                       "JetBrainsMono-" version ".zip"))
+       (sha256
+        (base32 "0qlp4902i1v6ni04b6gdip8rxw6wpkdk9w7dir1yn9an5mvbkyar"))))
+    (build-system font-build-system)
+    (home-page "https://www.jetbrains.com/lp/mono/")
+    (synopsis "Mono typeface for developers")
+    (description
+     "JetBrains Mono is a font family dedicated to developers.  JetBrains
+Mono’s typeface forms are simple and free from unnecessary details.  Rendered
+in small sizes, the text looks crisper.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 1e5ebea868..1d81938dec 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -120,7 +120,7 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
 finely hand-hinting the last 1%.  It is ideal for web fonts and supports many
 scripts.")
     (license (list license:gpl2+ license:freetype)) ;choose one or the other
-    (home-page "http://www.freetype.org/ttfautohint/")))
+    (home-page "https://www.freetype.org/ttfautohint/")))
 
 (define-public woff-tools
   (package
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 07ec16e287..e71065e270 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -266,7 +266,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "241.4")
+    (version "243.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -275,7 +275,7 @@ the freedesktop.org XDG Base Directory specification.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "13nd0chackqclgvw43910k4pkw2q773dh6wq9s5f3d97ibnik48k"))))
+                "141frvgyk4fafcxsix94qc0d9ffrwksld8lqq4hq6xsgjlvv0mrs"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -283,9 +283,11 @@ the freedesktop.org XDG Base Directory specification.")
               (sysconf (string-append out "/etc"))
               (libexec (string-append out "/libexec/elogind"))
               (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
+              (shadow (assoc-ref %build-inputs "shadow"))
               (shepherd (assoc-ref %build-inputs "shepherd"))
               (halt-path (string-append shepherd "/sbin/halt"))
               (kexec-path "")           ;not available in Guix yet
+              (nologin-path (string-append shadow "/sbin/nologin"))
               (poweroff-path (string-append shepherd "/sbin/shutdown"))
               (reboot-path (string-append shepherd "/sbin/reboot")))
          (list
@@ -299,7 +301,9 @@ the freedesktop.org XDG Base Directory specification.")
           (string-append "-Dkexec-path=" kexec-path)
           (string-append "-Dpoweroff-path=" poweroff-path)
           (string-append "-Dreboot-path=" reboot-path)
+          (string-append "-Dnologin-path=" nologin-path)
           "-Dcgroup-controller=elogind"
+          "-Dman=true"
           ;; Disable some tests.
           "-Dtests=false"
           "-Dslow-tests=false"))
@@ -311,6 +315,14 @@ the freedesktop.org XDG Base Directory specification.")
                (("join_paths\\(bindir, 'pkttyagent'\\)")
                 "'\"/run/current-system/profile/bin/pkttyagent\"'"))
              #t))
+         (add-after 'unpack 'adjust-dbus-socket-address
+           (lambda _
+             ;; Look for the D-Bus socket in /var/run instead of /run.  Remove
+             ;; this for versions > 243.4.
+             (substitute* "src/libelogind/sd-bus/bus-internal.h"
+               (("=/run/dbus/system_bus_socket")
+                "=/var/run/dbus/system_bus_socket"))
+             #t))
          (add-after 'unpack 'change-pid-file-path
            (lambda _
              (substitute* "src/login/elogind.c"
@@ -330,6 +342,7 @@ the freedesktop.org XDG Base Directory specification.")
     (inputs
      `(("linux-pam" ,linux-pam)
        ("libcap" ,libcap)
+       ("shadow" ,shadow)                    ;for 'nologin'
        ("shepherd" ,shepherd)                ;for 'halt' and 'reboot', invoked
                                              ;when pressing the power button
        ("dbus" ,dbus)
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index b2ab13d951..58d817853b 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -46,7 +46,7 @@
 (define-public lftp
   (package
     (name "lftp")
-    (version "4.8.4")
+    (version "4.9.1")
     (source (origin
               (method url-fetch)
               ;; See https://lftp.tech/get.html for mirrors.
@@ -58,7 +58,7 @@
                                         "ftp/lftp/lftp-" version ".tar.xz")))
               (sha256
                (base32
-                "0qks22357xv9y6ripmf5j2n5svh8j5z0yniphfk89sjwkqg2gg2f"))))
+                "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b89df02b19..5427cd1fc7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2016 David Thompson <dthompson2@worcester.edu>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
 ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
 ;;; Copyright © 2014, 2015, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
@@ -446,7 +446,7 @@ canyons and wait for the long I-shaped block to clear four rows at a time.")
          ("sdl2-image" ,sdl2-image)
          ("sdl2-ttf" ,sdl2-ttf)
          ("sdl2-mixer" ,sdl2-mixer)))
-      (home-page "http://en.cataclysmdda.com/")
+      (home-page "https://cataclysmdda.org/")
       (synopsis "Survival horror roguelike video game")
       (description
        "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set
@@ -4033,7 +4033,7 @@ throwing people around in pseudo-randomly generated buildings.")
 (define-public hyperrogue
   (package
     (name "hyperrogue")
-    (version "11.2d")
+    (version "11.2q")
     ;; When updating this package, be sure to update the "hyperrogue-data"
     ;; origin in native-inputs.
     (source (origin
@@ -4044,7 +4044,7 @@ throwing people around in pseudo-randomly generated buildings.")
                     "-src.tgz"))
               (sha256
                (base32
-                "1b532s94zv1jsni7bvh848m42arxcclsr0x3n7c689iamwqzrxmn"))))
+                "1w4khi2limxhgiq7xnz0rc9nzbk86bhbyzrcd5hdghnhsviaiggq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no check target
@@ -4122,7 +4122,7 @@ throwing people around in pseudo-randomly generated buildings.")
              "-win.zip"))
            (sha256
             (base32
-             "0vq4l1xaqpjj3hmxn1vn2b3bbkn1hrag42ck9f30blinv347bwhf"))))
+             "1k81zrbq5gmrccjac1i5c6v8j2iilfg2vwrnm8snjmmcnh5z1fgj"))))
        ("unzip" ,unzip)))
     (inputs
      `(("font-dejavu" ,font-dejavu)
@@ -5556,7 +5556,7 @@ elements to achieve a simple goal in the most complex way possible.")
 (define-public pioneer
   (package
     (name "pioneer")
-    (version "20190203")
+    (version "20200203")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5565,7 +5565,7 @@ elements to achieve a simple goal in the most complex way possible.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1g34wvgyvz793dhm1k64kl82ib0cavkbg0f2p3fp05b457ycljff"))))
+                "1011xsi94jhw98mhm8kryq8ajig0qfbrdx5xdasi92bd4nk7lcp8"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -7720,6 +7720,301 @@ the World and demonstrating that he is even more evil than his brother Vlad.")
     ;; Drascula uses a BSD-like license.
     (license (license:non-copyleft "file:///readme.txt"))))
 
+(define (make-lure-package name language hash)
+  (package
+    (name name)
+    (version "1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/scummvm/extras/"
+             "Lure%20of%20the%20Temptress/"
+             name "-" version ".zip"))
+       (sha256
+        (base32 hash))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (assoc-ref %outputs "out"))
+                (share (string-append out "/share"))
+                (data (string-append share "/" ,name "/" ,language))
+                (apps (string-append share "/applications"))
+                (bin (string-append out "/bin"))
+                (executable (string-append bin "/" ,name))
+                (scummvm (assoc-ref %build-inputs "scummvm")))
+           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                       "/bin/unzip")))
+             (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+           (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+             (for-each (lambda (f) (install-file f doc))
+                       (find-files "." "\\.(txt|PDF|pdf)$")))
+           (for-each (lambda (f) (install-file f data))
+                     (find-files "." "\\.(vga|VGA)$"))
+           ;; Build the executable.
+           (mkdir-p bin)
+           (let ((bash (assoc-ref %build-inputs "bash")))
+             (with-output-to-file executable
+               (lambda ()
+                 (format #t "#!~a/bin/bash~%" bash)
+                 (format #t "exec ~a/bin/scummvm -q ~a -p ~a lure~%"
+                         scummvm ,language data))))
+           (chmod executable #o755)
+           ;; Create desktop file.  There is no dedicated
+           ;; icon for the game, so we borrow SCUMMVM's.
+           (mkdir-p apps)
+           (with-output-to-file (string-append apps "/" ,name ".desktop")
+             (lambda _
+               (format #t
+                       "[Desktop Entry]~@
+                     Name=Lure of the Temptress~@
+                     GenericName=Lure~@
+                     Exec=~a~@
+                     Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+                     Categories=AdventureGame;Game;RolePlaying;~@
+                     Keywords=game;adventure;roleplaying;2D,fantasy;~@
+                     Comment=Classic 2D point and click adventure game~@
+                     Comment[de]=klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier~@
+                     Comment[fr]=Jeu classique d'aventure pointer-et-cliquer en 2D~@
+                     Comment[it]=Gioco classico di avventura punta e clicca 2D~@
+                     Type=Application~%"
+                       executable scummvm)))
+           #t))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("bash" ,bash)
+       ("scummvm" ,scummvm)))
+    (home-page "https://www.scummvm.org")
+    (synopsis "2D point and click fantasy adventure game")
+    (description
+     "Lure of the Temptress is a classic 2D point and click adventure game.
+
+You are Diermot, an unwilling hero who'd prefer a quiet life, and are, to all
+intents and purposes, a good man.  After decades of unrest the King has united
+the warring factions in his kingdom and all his lands are at peace, except
+a remote region around a town called Turnvale.  A revolt has recently taken
+place in Turnvale, a revolt orchestrated by an apprentice sorceress called
+Selena, the titular temptress.  The king calls together his finest horsemen
+and heads off (with you in tow) to Turnvale just to witness how hellish
+mercenary monsters called Skorl are invading the town.
+
+The king's men are defeated, the king is killed and you fall of your horse and
+bang your head heavily on the ground.  You have been *unconscious for a while
+when you realize that you are in a dingy cell guarded by a not so friendly
+Skorl.  Maybe it would be an idea to try and escape...")
+    (license (license:non-copyleft "file:///README"))))
+
+(define-public lure
+  (make-lure-package
+   "lure" "en" "0201i70qcs1m797kvxjx3ygkhg6kcl5yf49sihba2ga8l52q45zk"))
+
+(define-public lure-de
+  (make-lure-package
+   "lure-de" "de" "0sqq7h5llml6rv85x0bfv4bgzwhs4c82p4w4zmfcaab6cjlad0sy"))
+
+(define-public lure-es
+  (make-lure-package
+   "lure-es" "es" "1dvv5znvlsakw6w5r16calv9jkgw27aymgybsf4q22lcmpxbj1lk"))
+
+(define-public lure-fr
+  (make-lure-package
+   "lure-fr" "fr" "1y51jjb7f8023832g44vd1jsb6ni85586pi2n5hjg9qjk6gi90r9"))
+
+(define-public lure-it
+  (make-lure-package
+   "lure-it" "it" "1ks6n39r1cllisrrh6pcr39swsdv7ng3gx5c47vaw71zzfr70hjj"))
+
+(define (make-queen-package name file-prefix release language hash)
+  (package
+    (name name)
+    (version release)
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/scummvm/extras/"
+                           "Flight%20of%20the%20Amazon%20Queen/"
+                           file-prefix release ".zip"))
+       (sha256
+        (base32 hash))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (assoc-ref %outputs "out"))
+                (share (string-append out "/share"))
+                (data (string-append share "/" ,name))
+                (apps (string-append share "/applications"))
+                (bin (string-append out "/bin"))
+                (executable (string-append bin "/" ,name))
+                (scummvm (assoc-ref %build-inputs "scummvm")))
+           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                       "/bin/unzip")))
+             (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+           (let ((doc (string-append share "/doc/" ,name "-" ,version)))
+             (install-file "readme.txt" doc))
+           (install-file "queen.1c" data)
+           (mkdir-p bin)
+           (let ((bash (assoc-ref %build-inputs "bash")))
+             (with-output-to-file executable
+               (lambda ()
+                 (format #t "#!~a/bin/bash~%" bash)
+                 (format #t "exec ~a/bin/scummvm -q fr -p ~a queen~%"
+                         scummvm data))))
+           (chmod executable #o755)
+           ;; Create desktop file.  There is no dedicated
+           ;; icon for the game, so we borrow SCUMMVM's.
+           (mkdir-p apps)
+           (with-output-to-file (string-append apps "/" ,name ".desktop")
+             (lambda _
+               (format #t
+                       "[Desktop Entry]~@
+                       Name=Flight of the Amazon Queen~@
+                       GenericName=Queen~@
+                       Comment=Embark on a quest to rescue a kidnapped princess and in the process, discover the true sinister intentions of a suspiciously located Lederhosen company~@
+                       Comment[de]=Begib dich auf ein Abenteuer, um eine entführte Prinzessin zu retten und entdecke die wahren, finsteren Absichten eines verdächtig erscheinenden Lederhosen-Unternehmens~@
+                       Type=Application~@
+                       Exec=~a~@
+                       Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+                       Categories=AdventureGame;Game;RolePlaying;~@
+                       Keywords=adventure;game;roleplaying;fantasy;~%"
+                       executable scummvm))))
+         #t)))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("bash" ,bash)
+       ("scummvm" ,scummvm)))
+    (home-page "https://www.scummvm.org/")
+    (synopsis "Classic 2D point and click adventure game")
+    (description "Flight of the Amazon Queen is a 2D point-and-click
+adventure game set in the 1940s.
+
+You assume the role of Joe King, a pilot for hire who is given the job
+of flying Faye Russell (a famous movie star) into the Amazon jungle
+for a photo shoot.  Of course, things never go according to plans.
+After an unfortunate turn of events they find themselves stranded in
+the heart of the Amazon jungle, where Joe will embark on a quest to
+rescue a kidnapped princess and in the process, discover the true
+sinister intentions of a suspiciously located Lederhosen company.  In
+a rich 2D environment, Joe will cross paths with a variety of unlikely
+jungle inhabitants including, but not limited to, a tribe of Amazon
+women and 6-foot-tall pygmies.")
+    (license (license:non-copyleft "file:///readme.txt"))))
+
+(define-public queen
+  (make-queen-package
+   "queen" "FOTAQ_Talkie-" "1.1" "en"
+   "1a6q71q1dl9vvw2qqsxk5h1sv0gaqy6236zr5905w2is01gdsp52"))
+
+(define-public queen-de
+  (make-queen-package
+   "queen-de" "FOTAQ_Ger_talkie-" "1.0" "de"
+   "13vn43x7214vyprlpqabvv71k890nff3d6fjscflr1ll7acjca3f"))
+
+(define-public queen-fr
+  (make-queen-package
+   "queen-fr" "FOTAQ_Fr_Talkie_" "1.0" "fr"
+   "0hq5g4qrkcwm2kn5i4kv4hijs9hi7bw9xl1vrwd1l69qqn30crwy"))
+
+(define-public queen-it
+  (make-queen-package
+   "queen-it" "FOTAQ_It_Talkie_" "1.0" "it"
+   "1h76y70lrpzfjkm53n4nr364nhyka54vbz9r7sadzyzl7c7ilv4d"))
+
+(define-public sky
+  (package
+    (name "sky")
+    (version "1.2")                     ;1.3 is floppy version
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/scummvm/extras/"
+                           "Beneath%20a%20Steel%20Sky/"
+                           "bass-cd-" version ".zip"))
+       (sha256
+        (base32 "14s5jz67kavm8l15gfm5xb7pbpn8azrv460mlxzzvdpa02a9n82k"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out (assoc-ref %outputs "out"))
+                (share (string-append out "/share"))
+                (data (string-append share "/" ,name))
+                (apps (string-append share "/applications"))
+                (bin (string-append out "/bin"))
+                (executable (string-append bin "/" ,name))
+                (scummvm (assoc-ref %build-inputs "scummvm")))
+           (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                       "/bin/unzip")))
+             (invoke unzip "-j" (assoc-ref %build-inputs "source")))
+           (let ((doc (string-append share "/doc/bass-" ,version)))
+             (install-file "readme.txt" doc))
+           (for-each (lambda (f) (install-file f data))
+                     (find-files "." "^sky\\."))
+           ;; Build the executable.
+           (mkdir-p bin)
+           (let ((bash (assoc-ref %build-inputs "bash")))
+             (with-output-to-file executable
+               (lambda ()
+                 (format #t "#!~a/bin/bash~%" bash)
+                 (format #t "exec ~a/bin/scummvm -p ~a sky~%" scummvm data))))
+           (chmod executable #o755)
+           ;; Create desktop file.  There is no dedicated
+           ;; icon for the game, so we borrow SCUMMVM's.
+           (mkdir-p apps)
+           (with-output-to-file (string-append apps "/" ,name ".desktop")
+             (lambda _
+               (format #t
+                       "[Desktop Entry]~@
+                       Name=Beneath a Steel Sky~@
+                       GenericName=Bass~@
+                       Exec=~a~@
+                       Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@
+                       Categories=AdventureGame;Game;RolePlaying;~@
+                       Keywords=adventure;game;roleplaying;cyberpunk;~@
+                       Comment=A science-fiction adventure game set in a bleak post-apocalyptic vision of the future~@
+                       Comment[de]=Ein Science-Fiction-Abenteuerspiel \
+angesiedelt in einer düsteren, postapokalyptischen Vision der Zukunft~@
+                       Type=Application~%"
+                       executable scummvm)))
+           #t))))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("bash" ,bash)
+       ("scummvm" ,scummvm)))
+    (home-page "https://www.scummvm.org/")
+    (synopsis "Classic 2D point an click science-fiction adventure game")
+    (description
+     "Beneath a Steel Sky is a science-fiction thriller set in a bleak
+post-apocalyptic vision of the future.  It revolves around Union City,
+where selfishness, rivalry, and corruption by its citizens seems to be
+all too common, those who can afford it live underground, away from
+the pollution and social problems which are plaguing the city.
+
+You take on the role of Robert Foster, an outcast of sorts from the
+city since a boy who was raised in a remote environment outside of
+Union City simply termed ``the gap''.  Robert's mother took him away
+from Union City as a child on their way to ``Hobart'' but the
+helicopter crashed on its way.  Unfortunately, Robert's mother died,
+but he survived and was left to be raised by a local tribe from the
+gap.
+
+Years later, Union City security drops by and abducts Robert, killing
+his tribe in the process; upon reaching the city the helicopter taking
+him there crashes with him escaping, high upon a tower block in the
+middle of the city.  He sets out to discover the truth about his past,
+and to seek vengeance for the killing of his tribe.")
+    (license (license:non-copyleft "file:///readme.txt"))))
+
 (define-public gnurobots
   (package
     (name "gnurobots")
@@ -9656,3 +9951,137 @@ challenges.")
                    license:bsd-3        ;src/md5sum
                    license:lgpl2.1+     ;src/iqsort.h
                    license:expat))))
+
+(define-public eboard
+  (package
+    (name "eboard")
+    (version "1.1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fbergo/eboard.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1z4pwpqyvxhlda99h6arh2rjk90fbms9q29fqizjblrdn01dlxn1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("libpng" ,libpng)
+       ("gstreamer" ,gstreamer)))
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (make-file-writable "eboard-config")
+             (setenv "CC" "gcc")
+             (invoke "./configure"
+                     (string-append "--prefix=" (assoc-ref outputs "out")))
+             #t))
+         (add-before 'install 'make-required-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "out")
+                                     "/share/eboard"))
+             #t)))))
+    (synopsis "Graphical user interface to play chess")
+    (description
+     "Eboard is a chess board interface for ICS (Internet Chess Servers)
+and chess engines.")
+    (home-page "https://www.bergo.eng.br/eboard/")
+    (license license:gpl2+)))
+
+(define-public chessx
+  (package
+    (name "chessx")
+    (version "1.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/chessx/chessx/"
+                           version "/chessx-" version ".tgz"))
+       (sha256
+        (base32 "09rqyra28w3z9ldw8sx07k5ap3sjlli848p737maj7c240rasc6i"))))
+    (build-system qt-build-system)
+    (native-inputs
+     `(("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "chessx.pro"
+               (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease")
+                (string-append (assoc-ref inputs "qttools") "/bin/lrelease")))
+             #t))
+         (add-after 'fix-paths 'make-qt-deterministic
+           (lambda _
+             (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
+             #t))
+         (replace 'configure
+           (lambda _
+             (invoke "qmake")
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "release/chessx" (string-append out "/bin"))
+               (install-file "unix/chessx.desktop"
+                             (string-append out "/share/applications")))
+             #t)))))
+    (synopsis "Chess game database")
+    (description
+     "ChessX is a chess database.  With ChessX you can operate on your
+collection of chess games in many ways: browse, edit, add, organize, analyze,
+etc.  You can also play games on FICS or against an engine.")
+    (home-page "http://chessx.sourceforge.net/")
+    (license license:gpl2+)))
+
+(define-public stockfish
+  (package
+    (name "stockfish")
+    (version "11")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/official-stockfish/Stockfish.git")
+             (commit (string-append "sf_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "12mppipinymj8s1ipq9a7is453vncly49c32ym9wvyklsgyxfzlk"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:make-flags (list "-C" "src"
+                          "build"
+                          (string-append "PREFIX="
+                                         (assoc-ref %outputs "out"))
+                          (string-append "ARCH="
+                                         ,(match (%current-system)
+                                            ("x86_64-linux" "x86-64")
+                                            ("i686-linux" "x86-32")
+                                            ("aarch64-linux" "general-64")
+                                            ("armhf-linux" "armv7")
+                                            ("mips64el-linux" "general-64")
+                                            (_ "general-32"))))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (synopsis "Strong chess engine")
+    (description
+     "Stockfish is a very strong chess engines.  It is much stronger than the
+best human chess grandmasters.  It can be used with UCI-compatible GUIs like
+ChessX.")
+    (home-page "https://stockfishchess.org/")
+    (license license:gpl3+)))
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 1aa8d49036..310bb6c320 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -131,6 +131,16 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
 (define-public gdb/next
   (package/inherit
    gdb-8.3
+   (version "9.1")
+   (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz"))
+             (sha256
+              (base32
+               "0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9"))))
+   (arguments
+    `(#:out-of-source? #t
+      ,@(package-arguments gdb-8.3)))
    (inputs
     `(("source-highlight" ,source-highlight)
       ,@(package-inputs gdb-8.3)))
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index af2b06ab27..8aa69da7c3 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2018, 2019, 202 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;;
@@ -255,7 +255,7 @@ that is extensible via a plugin system.")
        ("gtk+" ,gtk+-2)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://registry.gimp.org/node/19596")
+    (home-page "https://www.lprp.fr/gimp_plugin_en/#fourier")
     (synopsis "GIMP plug-in to edit image in fourier space")
     (description
      "This package provides a simple plug-in to apply the fourier transform on
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index d0718d5d45..e610fe1dd7 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -422,6 +423,24 @@ device drivers allows Mesa to be used in many different environments ranging
 from software emulation to complete hardware acceleration for modern GPUs.")
     (license license:x11)))
 
+;; Mesa 19.3.2 causes a test failure in some packages, so add this newer
+;; version separately until the next rebuild cycle.
+(define-public mesa-19.3.3
+  (package/inherit
+   mesa
+   (version "19.3.3")
+   (source (origin
+             (inherit (package-source mesa))
+             (uri (list (string-append "https://mesa.freedesktop.org/archive/"
+                                       "mesa-" version ".tar.xz")
+                        (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
+                                       "mesa-" version ".tar.xz")
+                        (string-append "ftp://ftp.freedesktop.org/pub/mesa/"
+                                       version "/mesa-" version ".tar.xz")))
+             (sha256
+              (base32
+               "02czqdqf64i3az5p1allnxycyjad3x35cj0hz0017mi5pc84ikl1"))))))
+
 (define-public mesa-opencl
   (package
     (inherit mesa)
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 0fc721b7d3..7f375fefc5 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -114,6 +114,40 @@ which haven't been updated for some years.  The new app icons are ported from
 the Obsidian icon theme.")
     (license license:gpl3)))
 
+(define-public gnome-shell-extension-appindicator
+  (package
+    (name "gnome-shell-extension-appindicator")
+    (version "30")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url
+                     "https://github.com/ubuntu/gnome-shell-extension-appindicator.git")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8"))
+              (file-name (git-file-name name version))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((source (assoc-ref %build-inputs "source"))
+                (install-dir (string-append (assoc-ref %outputs "out")
+                                            "/share/gnome-shell/extensions"
+                                            "/appindicatorsupport@rgcjonas.gmail.com")))
+           (mkdir-p install-dir)
+           (copy-recursively source install-dir)
+           #t))))
+    (synopsis "Adds KStatusNotifierItem support to GNOME Shell")
+    (description "This extension integrates Ubuntu AppIndicators
+and KStatusNotifierItems (KDE's successor of the systray) into
+GNOME Shell.")
+    (home-page "https://github.com/ubuntu/gnome-shell-extension-appindicator/")
+    (license license:gpl2+)))
+
 (define-public gnome-shell-extension-dash-to-dock
   (package
     (name "gnome-shell-extension-dash-to-dock")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 8094dae477..cc00b69cf3 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -40,7 +40,7 @@
 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
+;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ -2170,6 +2170,10 @@ from forcing GEXP-PROMISE."
                      #+(canonical-package tar)))
               (invoke "tar" "xvf" #+upstream-source)
               (with-directory-excursion (string-append "librsvg-" #$version)
+                ;; The following crate(s) are needed in addition to the ones replaced:
+                (begin
+                  (invoke
+                   "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor"))
                 (for-each
                   (lambda (crate)
                     (delete-file-recursively (string-append "vendor/" (car crate)))
@@ -2179,7 +2183,7 @@ from forcing GEXP-PROMISE."
                     ("approx" . #+(package-source rust-approx-0.3))
                     ("arrayvec" . #+(package-source rust-arrayvec-0.4))
                     ("atty" . #+(package-source rust-atty-0.2))
-                    ("autocfg" . #+(package-source rust-autocfg-0.1))
+                    ("autocfg" . #+(package-source rust-autocfg-1.0))
                     ("bitflags" . #+(package-source rust-bitflags-1))
 ;; block 0.1
                     ("bstr" . #+(package-source rust-bstr-0.2))
@@ -2228,9 +2232,9 @@ from forcing GEXP-PROMISE."
                     ("itertools" . #+(package-source rust-itertools-0.8))
                     ("itoa" . #+(package-source rust-itoa-0.4))
                     ("language-tags" . #+(package-source rust-language-tags-0.2))
-                    ("lazy_static" . #+(package-source rust-lazy-static-1.3))
+                    ("lazy_static" . #+(package-source rust-lazy-static-1))
                     ("libc" . #+(package-source rust-libc-0.2))
-;; libm 0.1
+                    ("libm" . #+(package-source rust-libm-0.1))
 ;; locale_config 0.3
                     ("log" . #+(package-source rust-log-0.4))
                     ("mac" . #+(package-source rust-mac-0.1))
@@ -3761,7 +3765,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
 (define-public libsecret
   (package
     (name "libsecret")
-    (version "0.19.1")
+    (version "0.20.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3770,7 +3774,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
                     "libsecret-" version ".tar.xz"))
               (sha256
                (base32
-                "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
+                "0ir4ynpf8b64xss1azvsi5x6697lik7hkf3z0xxa2qv2xja3xxsp"))))
     (build-system gnu-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -4069,43 +4073,34 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.4.8")
+    (version "2.5.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://www.freedesktop.org/software/" name
-                           "/releases/" (version-major+minor version) "/"
-                           name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
+                       version "/geoclue-" version ".tar.bz2"))
        (sha256
         (base32
-         "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
+         "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
        (patches (search-patches "geoclue-config.patch"))))
-    (build-system glib-or-gtk-build-system)
+    (build-system meson-build-system)
     (arguments
-     '(;; The tests want to run the system bus.
-       #:tests? #f
-       #:configure-flags (list ;; Disable bits requiring ModemManager.
-                               "--disable-3g-source"
-                               "--disable-cdma-source"
-                               "--disable-modem-gps-source"
-                               "--with-dbus-service-user=geoclue")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/true
-                     (lambda _
-                       (substitute* "configure"
-                         (("/bin/true") (which "true")))
-                       #t)))))
+     '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gobject-introspection" ,gobject-introspection)
+       ("modem-manager" ,modem-manager)
+       ("libnotify" ,libnotify)
+       ("gtk-doc", gtk-doc)
        ("intltool" ,intltool)))
     (inputs
      `(("avahi" ,avahi)
-       ("glib" ,glib)
+       ("glib:bin" ,glib "bin")
+       ("glib-networking" ,glib-networking)
        ("json-glib" ,json-glib)
        ("libsoup" ,libsoup)))
-    (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
+    (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
     (synopsis "Geolocation service")
     (description "Geoclue is a D-Bus service that provides location
 information.  The primary goal of the Geoclue project is to make creating
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index c36210b4d5..422c9bc1d7 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -93,7 +93,7 @@
     `(("exiv2" ,exiv2)
       ("bzip2" ,bzip2)
       ("flac" ,flac)
-      ("ffmpeg" ,ffmpeg-3.4)
+      ("ffmpeg" ,ffmpeg)
       ("file" ,file)                           ;libmagic, for the MIME plug-in
       ("glib" ,glib)
       ("gstreamer" ,gstreamer)
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index ae0c58eedb..863edb3b4e 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -552,8 +552,8 @@ from forcing GEXP-PROMISE."
                       #:system system
                       #:guile-for-build guile)))
 
-(define %icecat-version "68.4.1-guix0-preview1")
-(define %icecat-build-id "20200108000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "68.5.0-guix0-preview1")
+(define %icecat-build-id "20200211000000") ;must be of the form YYYYMMDDhhmmss
 
 ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -575,11 +575,11 @@ from forcing GEXP-PROMISE."
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "0q7kv70w1d33m12hkzyay6nkgvz9qczrl6hqx0n1c6grs097f2m0"))))
+              "1ld6jinnln0si6p8qy93v5nzd21ckhl266vz425lwqipibwq9rsj"))))
 
-         (upstream-icecat-base-version "68.4.1") ; maybe older than base-version
+         (upstream-icecat-base-version "68.5.0") ; maybe older than base-version
          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "2d1b1bc45fdae5a99c4e8ea25593ebb9c8d7bfdf")
+         (gnuzilla-commit "2dc3c0bed6f8a41a8426ae66db92729af5c27c70")
          (gnuzilla-source
           (origin
             (method git-fetch)
@@ -591,7 +591,7 @@ from forcing GEXP-PROMISE."
                                       (string-take gnuzilla-commit 8)))
             (sha256
              (base32
-              "0hc9sx3yb71xvr9s1p0z5fx8jfqpssb8wz0h2nzhy2nyp9bb2jzl"))))
+              "1xwr1xjs4j2i6skm8hknh37gzsd6r396n0lchbwlahig7w6z506y"))))
 
          (makeicecat-patch
           (local-file (search-patch "icecat-makeicecat.patch"))))
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9102469749..d165ccf065 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -16,6 +16,7 @@
 ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
 ;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -216,11 +217,11 @@ in the style of communicating sequential processes (@dfn{CSP}).")
     (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
     (license license:bsd-3)))
 
-(define-public go-1.12
+(define-public go-1.13
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.12.16")
+    (version "1.13.7")
     (source
      (origin
        (method url-fetch)
@@ -228,7 +229,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "1y0x10fsvgpc1x24b9q9y6kv9b0kwf7879am3p0gym2abgc5wvnf"))))
+         "1x21kfpzfkvmqd42pan6nl862m7jjl4niqxxpcgm46awbz645bg4"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -367,7 +368,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                       (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
                       (src (string-append
                             (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
-                 (delete-file-recursively "../pkg/bootstrap")
                  ;; Prevent installation of the build cache, which contains
                  ;; store references to most of the tools used to build Go and
                  ;; would unnecessarily increase the size of Go's closure if it
@@ -405,7 +405,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        ,@(package-native-inputs go-1.4)))
     (supported-systems %supported-systems)))
 
-(define-public go go-1.12)
+(define-public go go-1.13)
 
 (define-public go-github-com-alsm-ioprogress
   (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
@@ -623,8 +623,8 @@ Go programming language.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-crypto
-  (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
-        (revision "3"))
+  (let ((commit "9756ffdc24725223350eb3266ffb92590d28f278")
+        (revision "4"))
     (package
       (name "go-golang-org-x-crypto")
       (version (git-version "0.0.0" revision commit))
@@ -637,7 +637,7 @@ Go programming language.")
                                           version "-checkout"))
                 (sha256
                  (base32
-                  "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
+                  "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "golang.org/x/crypto"
@@ -665,8 +665,8 @@ for the Go language.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-net
-  (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
-        (revision "3"))
+  (let ((commit "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
+        (revision "4"))
     (package
       (name "go-golang-org-x-net")
       (version (git-version "0.0.0" revision commit))
@@ -678,7 +678,7 @@ for the Go language.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
+                  "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/net"
@@ -693,8 +693,8 @@ for the Go language.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-sys
-  (let ((commit "04f50cda93cbb67f2afa353c52f342100e80e625")
-        (revision "4"))
+  (let ((commit "749cb33beabd9aa6d3178e3de05bcc914f70b2bf")
+        (revision "5"))
     (package
       (name "go-golang-org-x-sys")
       (version (git-version "0.0.0" revision commit))
@@ -706,7 +706,7 @@ for the Go language.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw"))))
+                  "0dm3257q3rv2kyn5lmqqim2fqg634v6rhrqq4glvbk4wx4l3v337"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/sys"
@@ -750,8 +750,8 @@ support for low-level interaction with the operating system.")
     (license license:bsd-3)))
 
 (define-public go-golang-org-x-time
-  (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
-        (revision "1"))
+  (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
+        (revision "2"))
     (package
       (name "go-golang-org-x-time")
       (version (git-version "0.0.0" revision commit))
@@ -763,7 +763,7 @@ support for low-level interaction with the operating system.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
+                  "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/time"
@@ -1423,7 +1423,7 @@ values.")
 (define-public go-github-com-mattn-go-isatty
   (package
     (name "go-github-com-mattn-go-isatty")
-    (version "0.0.7")
+    (version "0.0.11")
     (source
      (origin
        (method git-fetch)
@@ -1433,7 +1433,7 @@ values.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
+         "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
     (build-system go-build-system)
     (propagated-inputs
      `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
@@ -1792,7 +1792,7 @@ and lookup requests.  Browse requests are not supported yet.")
 (define-public go-github-com-gogo-protobuf
   (package
     (name "go-github-com-gogo-protobuf")
-    (version "1.2.1")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1801,7 +1801,7 @@ and lookup requests.  Browse requests are not supported yet.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
+                "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/gogo/protobuf"
@@ -1957,27 +1957,25 @@ needing to use secp256k1 elliptic curve cryptography.")
       (license license:isc))))
 
 (define-public go-github-com-minio-sha256-simd
-  (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
-        (revision "3"))
-    (package
-      (name "go-github-com-minio-sha256-simd")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/minio/sha256-simd.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/minio/sha256-simd"))
-      (home-page "https://github.com/minio/sha256-simd")
-      (synopsis "Accelerate SHA256 computations in pure Go")
-      (description "Accelerate SHA256 computations in pure Go using AVX512 and
+  (package
+    (name "go-github-com-minio-sha256-simd")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minio/sha256-simd.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/minio/sha256-simd"))
+    (home-page "https://github.com/minio/sha256-simd")
+    (synopsis "Accelerate SHA256 computations in pure Go")
+    (description "Accelerate SHA256 computations in pure Go using AVX512 and
 AVX2 for Intel and ARM64 for ARM.  On AVX512 it provides an up to 8x
 improvement (over 3 GB/s per core) in comparison to AVX2.
 
@@ -1990,7 +1988,7 @@ This package uses Golang assembly.  The AVX512 version is based on the Intel's
 \"multi-buffer crypto library for IPSec\" whereas the other Intel
 implementations are described in \"Fast SHA-256 Implementations on Intel
 Architecture Processors\" by J. Guilford et al.")
-      (license license:asl2.0))))
+    (license license:asl2.0)))
 
 (define-public go-github-com-libp2p-go-libp2p-crypto
   (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
@@ -2471,7 +2469,7 @@ as conversion to and from @command{net.Addr}.")
 (define-public go-github-com-urfave-cli
   (package
     (name "go-github-com-urfave-cli")
-    (version "1.21.0")
+    (version "1.22.2")
     (source
      (origin
        (method git-fetch)
@@ -2481,10 +2479,12 @@ as conversion to and from @command{net.Addr}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "104jldhxn6d97l5vsbsl0q8hgy1bxrahbr6dbfqrlppva51jmydd"))))
+         "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/urfave/cli"))
+    (propagated-inputs
+     `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
     (home-page "https://github.com/urfave/cli")
     (synopsis "Simple, fast, and fun package for building command line apps in Go")
     (description "@command{cli} is a simple, fast, and fun package for
@@ -2492,6 +2492,107 @@ building command line apps in Go.  The goal is to enable developers to write
 fast and distributable command line applications in an expressive way.")
     (license license:expat)))
 
+(define-public go-github-com-go-md2man
+  (package
+    (name "go-github-com-go-md2man")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cpuguy83/go-md2man")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (delete-file-recursively "vendor")
+                   #t))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/cpuguy83/go-md2man"))
+    (propagated-inputs
+     `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
+    (home-page "https://github.com/cpuguy83/go-md2man")
+    (synopsis "Convert markdown into roff")
+    (description "Go-md2man is a Go program that converts markdown to roff for
+the purpose of building man pages.")
+    (license license:expat)))
+
+(define-public go-github-com-russross-blackfriday
+  (package
+    (name "go-github-com-russross-blackfriday")
+    (version "2.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/russross/blackfriday")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/russross/blackfriday"))
+    (propagated-inputs
+     `(("go-github-com-shurcool-sanitized-anchor-name"
+        ,go-github-com-shurcool-sanitized-anchor-name)))
+    (native-inputs
+     `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
+    (home-page "https://github.com/russross/blackfriday")
+    (synopsis "Markdown processor in Go")
+    (description "Blackfriday is a Markdown processor in Go.")
+    (license license:bsd-2)))
+
+(define-public go-github-com-shurcool-sanitized-anchor-name
+  (package
+    (name "go-github-com-shurcool-sanitized-anchor-name")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/shurcooL/sanitized_anchor_name")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
+    (home-page "https://github.com/shurcooL/sanitized_anchor_name")
+    (synopsis "Create sanitized anchor names")
+    (description "This package provides a Go program for creating sanitized
+anchor names.")
+    (license license:expat)))
+
+(define-public go-github-com-pmezard-go-difflib
+  (package
+    (name "go-github-com-pmezard-go-difflib")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pmezard/go-difflib")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/pmezard/go-difflib/difflib"
+       #:unpack-path "github.com/pmezard/go-difflib/"))
+    (home-page "https://github.com/pmezard/go-difflib")
+    (synopsis "Go diff implementation")
+    (description "This package provides unified and context-aware diffs in Go.")
+    (license license:bsd-3)))
+
 (define-public go-github-com-whyrusleeping-json-filter
   (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
         (revision "0"))
@@ -2862,7 +2963,7 @@ mutex, simply ignore the RLock/RUnlock functions.")
 (define-public go-github-com-marten-seemann-qtls
   (package
     (name "go-github-com-marten-seemann-qtls")
-    (version "0.2.3")
+    (version "0.3.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2871,7 +2972,7 @@ mutex, simply ignore the RLock/RUnlock functions.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
+                "1mdymj66qrqy80pfkwy9s9z9ifkg251whngw5lim09zm90wv2q7a"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/marten-seemann/qtls"
@@ -2912,7 +3013,7 @@ implementation of generics.")
 (define-public go-github-com-lucas-clemente-quic-go
   (package
     (name "go-github-com-lucas-clemente-quic-go")
-    (version "0.11.2")
+    (version "0.12.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2921,7 +3022,7 @@ implementation of generics.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
+                "156nhq4dvw7mr08j952248v81q7702phbn4mp228319sahnbv65h"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/lucas-clemente/quic-go"
@@ -2930,7 +3031,8 @@ implementation of generics.")
     (propagated-inputs
      `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
        ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
-       ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
+       ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
+       ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
     (synopsis "QUIC in Go")
     (description "This package provides a Go language implementation of the QUIC
 network protocol.")
@@ -2938,28 +3040,26 @@ network protocol.")
     (license license:expat)))
 
 (define-public go-github-com-pkg-errors
-  (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
-        (revision "0"))
-    (package
-      (name "go-github-com-pkg-errors")
-      (version (git-version "0.8.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/pkg/errors.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "github.com/pkg/errors"))
-      (synopsis "Go error handling primitives")
-      (description "This package provides @code{error}, which offers simple
+  (package
+    (name "go-github-com-pkg-errors")
+    (version "0.9.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pkg/errors.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hlivqlcnm9wrj0v7h43gamw7mvg6svz9sm31fx28zn4ll25ablh"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/pkg/errors"))
+    (synopsis "Go error handling primitives")
+    (description "This package provides @code{error}, which offers simple
 error handling primitives in Go.")
-      (home-page "https://github.com/pkg/errors")
-      (license license:bsd-2))))
+    (home-page "https://github.com/pkg/errors")
+    (license license:bsd-2)))
 
 (define-public go-github-com-maruel-panicparse
   (package
@@ -3077,3 +3177,175 @@ alternative to @code{reflect.DeepEqual} for comparing whether two values
 are semantically equal in Go (for writing tests).")
     (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
     (license license:asl2.0)))
+
+(define-public go-golang.org-x-sync-errgroup
+  (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
+        (revision "0"))
+    (package
+      (name "go-golang.org-x-sync-errgroup")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://go.googlesource.com/sync")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/sync/errgroup"
+         #:unpack-path "golang.org/x/sync"))
+      (synopsis "Synchronization, error propagation, and Context cancelation
+for groups of goroutines working on subtasks of a common task.")
+      (description "This package provides synchronization, error propagation,
+and Context cancelation for groups of goroutines working on subtasks of a
+common task.")
+      (home-page "https://godoc.org/golang.org/x/sync/errgroup")
+      (license license:bsd-3))))
+
+(define (go-gotest-tools-source version sha256-base32-hash)
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/gotestyourself/gotest.tools.git")
+          (commit (string-append "v" version))))
+    (file-name (git-file-name "go-gotest-tools" version))
+    (sha256
+     (base32 sha256-base32-hash))))
+
+;; Note that version 3.0.0 is incompatible to 2.3.0.
+;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
+(define (go-gotest-tools-package suffix)
+  (package
+    (name (string-append "go-gotest-tools-"
+                         (string-replace-substring suffix "/" "-")))
+    (version "2.3.0")
+    (source
+     (go-gotest-tools-source version
+      "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path ,(string-append "gotest.tools/" suffix)
+       #:unpack-path "gotest.tools"))
+    (synopsis "@code{gotest-tools} part")
+    (description "This package provides a part of @code{gotest-tools}.")
+    (home-page "https://github.com/gotestyourself/gotest.tools")
+    (license license:asl2.0)))
+
+(define-public go-gotest-tools-internal-format
+  (package (inherit (go-gotest-tools-package "internal/format"))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Formats messages for use with gotest-tools")
+    (description "This package provides a way to format messages for use
+with gotest-tools.")))
+
+(define-public go-gotest-tools-internal-difflib
+  (package (inherit (go-gotest-tools-package "internal/difflib"))
+    (synopsis "Differences for use with gotest-tools")
+    (description "This package computes differences for use
+with gotest-tools.")))
+
+(define-public go-gotest-tools-internal-source
+  (package (inherit (go-gotest-tools-package "internal/source"))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Source code AST formatters for gotest-tools")
+    (description "This package provides source code AST formatters for
+gotest-tools.")))
+
+(define-public go-gotest-tools-assert
+  (package (inherit (go-gotest-tools-package "assert"))
+    (name "go-gotest-tools-assert")
+    (arguments
+     `(#:tests? #f ; Test failure concerning message formatting (FIXME)
+       #:import-path "gotest.tools/assert"
+       #:unpack-path "gotest.tools"))
+    ;(propagated-inputs
+    ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
+    (native-inputs
+     `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Compare values and fail a test when a comparison fails")
+    (description "This package provides a way to compare values and fail a
+test when a comparison fails.")
+    (home-page "https://github.com/gotestyourself/gotest.tools")
+    (license license:asl2.0)))
+
+(define-public gotestsum
+  (package
+    (name "gotestsum")
+    (version "0.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/gotestyourself/gotestsum.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "gotest.tools/gotestsum"))
+    (native-inputs
+     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+       ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
+       ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
+       ("go-github-com-sirupsen-logrus"
+        ,go-github-com-sirupsen-logrus)
+       ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
+       ("go-github-com-jonboulle-clockwork"
+        ,go-github-com-jonboulle-clockwork)
+       ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
+       ("go-gotest-tools-assert" ,go-gotest-tools-assert)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)
+       ;; TODO: This would be better as a propagated-input of
+       ;; go-gotest-tools-assert, but that does not work for
+       ;; some reason.
+       ("go-gotest-tools-internal-format"
+        ,go-gotest-tools-internal-format)
+       ("go-gotest-tools-internal-difflib"
+        ,go-gotest-tools-internal-difflib)
+       ("go-gotest-tools-internal-source"
+        ,go-gotest-tools-internal-source)
+       ("go-github-com-google-go-cmp-cmp"
+        ,go-github-com-google-go-cmp-cmp)))
+    (synopsis "Go test runner with output optimized for humans")
+    (description "This package provides a @code{go test} runner with output
+optimized for humans, JUnit XML for CI integration, and a summary of the
+test results.")
+    (home-page "https://github.com/gotestyourself/gotestsum")
+    (license license:asl2.0)))
+
+(define-public go-github-com-golang-protobuf-proto
+  (package
+    (name "go-github-com-golang-protobuf-proto")
+    (version "1.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/golang/protobuf.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/golang/protobuf/proto"
+       #:unpack-path "github.com/golang/protobuf"
+       ;; Requires unpackaged golang.org/x/sync/errgroup
+       #:tests? #f))
+    (synopsis "Go support for Protocol Buffers")
+    (description "This package provides Go support for the Protocol Buffers
+data serialization format.")
+    (home-page "https://github.com/golang/protobuf")
+    (license license:bsd-3)))
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 040793b4f6..8e7c961929 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,7 +37,7 @@
 (define-public gpodder
   (package
     (name "gpodder")
-    (version "3.10.11")
+    (version "3.10.13")
     (source
      (origin
        (method git-fetch)
@@ -46,7 +46,7 @@
              (commit version)))
        (sha256
         (base32
-         "15f5z3cnch9lpzbz73l4wjykv9n74y8djz5db53la2ql4ihaxfz9"))
+         "1h542syaxsx1hslfzlk3fx1nbp190zjw35kigw7a1kx1jwvfwapg"))
        (file-name (git-file-name name version))))
     (build-system python-build-system)
     (native-inputs
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 982def62c6..7b51a4fd90 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2020 Alexander Krotov <krotov@iitp.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cran)
+  #:use-module (gnu packages gd)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
@@ -501,3 +503,30 @@ isolating planarity obstructions.")
     (description "rw computes rank-width and rank-decompositions
 of graphs.")
     (license license:gpl2+)))
+
+(define-public mscgen
+  (package
+    (name "mscgen")
+    (version "0.20")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.mcternan.me.uk/mscgen/software/mscgen-src-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "08yw3maxhn5fl1lff81gmcrpa4j9aas4mmby1g9w5qcr0np82d1w"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gd" ,gd)))
+    (home-page "http://www.mcternan.me.uk/mscgen/")
+    (synopsis "Message Sequence Chart Generator")
+    (description "Mscgen is a small program that parses Message Sequence Chart
+descriptions and produces PNG, SVG, EPS or server side image maps (ismaps) as
+the output.  Message Sequence Charts (MSCs) are a way of representing entities
+and interactions over some time period and are often used in combination with
+SDL.  MSCs are popular in Telecoms to specify how protocols operate although
+MSCs need not be complicated to create or use.  Mscgen aims to provide a simple
+text language that is clear to create, edit and understand, which can also be
+transformed into common image formats for display or printing.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 8091afaf0a..e09981dda0 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -16,7 +16,7 @@
 ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
 ;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -330,7 +330,7 @@ many more.")
 (define-public ilmbase
   (package
     (name "ilmbase")
-    (version "2.4.0")
+    (version "2.4.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -339,7 +339,7 @@ many more.")
               (file-name (git-file-name "ilmbase" version))
               (sha256
                (base32
-                "0g3rz11cvb7gnphp2np9z7bfl7v4dprq4w5hnsvx7yrasgsdyn8s"))
+                "020gyl8zv83ag6gbcchmqiyx9rh2jca7j8n52zx1gk4rck7kwc01"))
               (patches (search-patches "ilmbase-fix-tests.patch"
                                        "ilmbase-openexr-pkg-config.patch"))))
     (build-system cmake-build-system)
@@ -854,7 +854,7 @@ exec -a \"$0\" ~a/.brdf-real~%"
          ("glew" ,glew)
          ("freeglut" ,freeglut)
          ("zlib" ,zlib)))
-      (home-page "http://www.disneyanimation.com/technology/brdf.html")
+      (home-page "https://www.disneyanimation.com/technology/brdf.html")
       (synopsis
        "Analyze bidirectional reflectance distribution functions (BRDFs)")
       (description
@@ -1061,7 +1061,10 @@ requirements.")
     (native-inputs
      `(("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("glew" ,glew)
+     `(;; The test suite fails when using Mesa 19.3.2, so we provide this newer
+       ;; version.  Remove this input when the 'mesa' package is updated.
+       ("mesa" ,mesa-19.3.3)
+       ("glew" ,glew)
        ("libxrandr" ,libxrandr)
        ("libxcursor" ,libxcursor)
        ("libxinerama" ,libxinerama)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2854945d78..93149e370e 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -476,6 +477,39 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
 compression formats through the use of the libav library.")
     (license license:gpl2+)))
 
+(define-public gst-editing-services
+  (package
+    (name "gst-editing-services")
+    (version "1.16.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://gstreamer.freedesktop.org/src/" name "/"
+                    "gstreamer-editing-services-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
+    (build-system meson-build-system)
+    (arguments
+     ;; FIXME: 16/22 failing tests.
+     `(#:tests? #f))
+    (inputs
+     `(("gst-plugins-base" ,gst-plugins-base)
+       ("libxml2" ,libxml2)))
+    (native-inputs
+     `(("flex" ,flex)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python)))
+    (home-page "https://gstreamer.freedesktop.org/")
+    (synopsis "GStreamer library for non-linear editors")
+    (description
+     "This is a high-level library for facilitating the creation of audio/video
+non-linear editors.")
+    (license license:gpl2+)))
+
 (define-public python-gst
   (package
     (name "python-gst")
diff --git a/gnu/packages/ham-radio.scm b/gnu/packages/ham-radio.scm
index 6b3f68cd7d..376191af54 100644
--- a/gnu/packages/ham-radio.scm
+++ b/gnu/packages/ham-radio.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
+;;; Copyright © 2019, 2020 Evan Straw <evan.straw99@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +22,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
@@ -29,6 +31,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sdr)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
@@ -127,3 +130,49 @@ satellites, the POES NOAA weather satellite series.  These transmissions are
 on a frequency of 137 MHz.  They can be received using an inexpensive antenna
 and a dedicated receiver.")
     (license license:gpl2+)))
+
+(define-public redsea
+  (package
+    (name "redsea")
+    (version "0.18")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/windytan/redsea")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1y96g0ra2krjb2kypm8s5gdfia45yci4f36klsvyzg8d53v5cwhn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The configure.ac file does not explicitly link against libiconv
+         ;; except on Mac OS, causing the build to fail. This phase comments
+         ;; out the original AC_SUBST macro (located inside a conditional) and
+         ;; adds an explicit use of it underneath, so that libiconv is always
+         ;; linked against.
+         (add-after 'unpack 'patch-libiconv
+           (lambda _
+             (substitute* "configure.ac"
+               (("^ +AC_SUBST")
+                "# AC_SUBST")
+               (("esac")
+                "esac\nAC_SUBST([ICONV], [\"-liconv\"])"))
+             #t)))))
+    (inputs
+     `(("libiconv" ,libiconv)
+       ("libsndfile" ,libsndfile)
+       ("liquid-dsp" ,liquid-dsp)))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (home-page "https://github.com/windytan/redsea")
+    (synopsis "Lightweight RDS to JSON decoder")
+    (description "redsea is a lightweight command-line @dfn{FM Radio Data
+System} (FM-RDS) decoder.  Redsea can be used with any RTL-SDR USB radio stick
+with the rtl_fm tool, or any other @dfn{software-defined radio} (SDR) via
+csdr, for example.  It can also decode raw ASCII bitstream, the hex format
+used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
+    (license license:expat)))
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index af940f02fc..7825963523 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 JoJo <jo@jo.zone>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8165,6 +8166,114 @@ easily work with command-line options.")
 command line options in Haskell.")
     (license license:bsd-3)))
 
+(define-public ghc-jira-wiki-markup
+  (package
+    (name "ghc-jira-wiki-markup")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/jira-wiki-markup/"
+             "jira-wiki-markup-" version ".tar.gz"))
+       (sha256
+        (base32 "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (home-page "https://github.com/tarleb/jira-wiki-markup")
+    (synopsis "Handle Jira wiki markup")
+    (description
+     "Parse jira wiki text into an abstract syntax tree for easy transformation
+to other formats.")
+    (license license:expat)))
+
+(define-public ghc-emojis
+  (package
+    (name "ghc-emojis")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/emojis/"
+             "emojis-" version ".tar.gz"))
+       (sha256
+        (base32 "1c6zkj9gmk1y90gbdrn50hyp7mw1mggzhnr2khqd728ryipw60ss"))))
+    (build-system haskell-build-system)
+    (native-inputs
+     `(("ghc-hunit" ,ghc-hunit)))
+    (home-page "https://github.com/jgm/emojis#readme")
+    (synopsis "Conversion between emoji characters and their names.")
+    (description
+     "This package provides functions for converting emoji names to emoji
+characters and vice versa.
+
+How does it differ from the @code{emoji} package?
+@itemize
+@item It supports a fuller range of emojis, including all those supported by
+GitHub
+@item It supports lookup of emoji aliases from emoji
+@item It uses Text rather than String
+@item It has a lighter dependency footprint: in particular, it does not
+require aeson
+@item It does not require TemplateHaskell
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public ghc-text-conversions
+  (package
+    (name "ghc-text-conversions")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/text-conversions/"
+             "text-conversions-" version ".tar.gz"))
+       (sha256
+        (base32 "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-base16-bytestring" ,ghc-base16-bytestring)
+       ("ghc-base64-bytestring" ,ghc-base64-bytestring)
+       ("ghc-errors" ,ghc-errors)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("hspec-discover" ,hspec-discover)))
+    (home-page "https://github.com/cjdev/text-conversions#readme")
+    (synopsis "Safe conversions between textual types")
+    (description "Safe conversions between textual types")
+    (license license:isc)))
+
+(define-public ghc-doclayout
+  (package
+    (name "ghc-doclayout")
+    (version "0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://hackage.haskell.org/package/doclayout/"
+             "doclayout-" version ".tar.gz"))
+       (sha256
+        (base32 "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-safe" ,ghc-safe)))
+    (native-inputs
+     `(("ghc-tasty" ,ghc-tasty)
+       ("ghc-tasty-golden" ,ghc-tasty-golden)
+       ("ghc-tasty-hunit" ,ghc-tasty-hunit)))
+    (home-page "https://github.com/jgm/doclayout")
+    (synopsis "Pretty-printing library for laying out text documents")
+    (description
+     "doclayout is a pretty-printing library for laying out text documents,
+with several features not present in pretty-printing libraries designed for
+code.  It was designed for use in @code{Pandoc}.")
+    (license license:bsd-3)))
+
 (define-public ghc-pandoc
   (package
     (name "ghc-pandoc")
diff --git a/gnu/packages/i2p.scm b/gnu/packages/i2p.scm
index f8c3f3bb5c..a317cd590c 100644
--- a/gnu/packages/i2p.scm
+++ b/gnu/packages/i2p.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 4b0504ca5c..0d5b9788b8 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -100,7 +100,7 @@ microblogging services.
 Other notable features include:
 @itemize
 @item Support for user + friends time-lines.
-@item Support for @Reply time-lines.
+@item Support for @@Reply time-lines.
 @item Support for sending and receiving direct messages.
 @item Twitpic.com integration.
 @item The ability to use multiple accounts simultaneously.
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index fe0f3e6382..c91d5fe031 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -41,6 +41,7 @@
   #:use-module (guix utils)
   #:use-module (ice-9 match)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -67,6 +68,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages openldap)
@@ -85,7 +87,7 @@
 (define-public ixion
   (package
     (name "ixion")
-    (version "0.14.1")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
@@ -93,13 +95,14 @@
                            version ".tar.xz"))
        (sha256
         (base32
-         "14gdd6div4l22vnz3jn2qjxgjly98ck6p8c1v7386c41rx7kilba"))))
+         "1rmrl2zjzi4z0abf2cd54acypkccdhx2065dlyzy6xg83gv0mxmi"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("mdds" ,mdds)
-       ("python" ,python)))
+       ("python" ,python)
+       ("spdlog" ,spdlog)))
     (home-page "https://gitlab.com/ixion/ixion")
     (synopsis "General purpose formula parser and interpreter")
     (description "Ixion is a library for calculating the results of formula
@@ -111,7 +114,7 @@ their dependencies automatically upon calculation.")
 (define-public orcus
   (package
     (name "orcus")
-    (version "0.14.1")
+    (version "0.15.3")
     (source
      (origin
        (method url-fetch)
@@ -119,7 +122,7 @@ their dependencies automatically upon calculation.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1ays13a1x15j81dsrq0d3697v1bbqd3bfz3ajn6kb9d61y2drlgj"))))
+         "14gbnqsv5n2fm4sxa17014f440clrzls6p2w2ixk9wipg4950v9s"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -362,14 +365,14 @@ AbiWord documents.")
 (define-public libcdr
   (package
     (name "libcdr")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://dev-www.libreoffice.org/src/" name "/"
                           name "-" version ".tar.xz"))
       (sha256 (base32
-               "0j1skr11jwvafn0l6p37v3i4lqc8wcn489g8f7c4mqwbk94mrkka"))))
+               "0qgqlw6i25zfq1gf7f6r5hrhawlrgh92sg238kjpf2839aq01k81"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("cppunit" ,cppunit)
@@ -401,7 +404,7 @@ CorelDRAW documents of all versions.")
                "0jhsbdimiyijdqriy0zzkjjgc4wi6fjimhdg4mdybrlwg7l7f5p6"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-mdds=1.4")))
+     `(#:configure-flags '("--with-mdds=1.5")))
     (native-inputs
      `(("cppunit" ,cppunit)
        ("doxygen" ,doxygen)
@@ -939,7 +942,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
 (define-public libreoffice
   (package
     (name "libreoffice")
-    (version "6.3.4.2")
+    (version "6.4.0.3")
     (source
      (origin
        (method url-fetch)
@@ -949,17 +952,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
          (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
        (sha256
         (base32
-         "1774vmf3lr5x24ikpn1z5vqcdwrhiwfkjy7sx09jqkvpm6d5awnb"))
-       (patches (search-patches "libreoffice-icu.patch"
-                                "libreoffice-glm.patch"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (for-each (lambda (file)
-                       ;; Adjust to renamed function in Poppler 0.72.
-                       (substitute* file (("getCString") "c_str")))
-                     (find-files "sdext/source/pdfimport/xpdfwrapper"))
-           #t))))
+         "09ra8a3ylb08xhy8wy233fs0f87klkpsbi9n3zss0c688afxjcf5"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -1032,6 +1025,7 @@ converting QuarkXPress file format.  It supports versions 3.1 to 4.1.")
        ("postgresql" ,postgresql)
        ("python" ,python)
        ("python-lxml" ,python-lxml)
+       ("qrcodegen-cpp" ,qrcodegen-cpp)
        ("redland" ,redland)
        ("sane-backends" ,sane-backends)
        ("unixodbc" ,unixodbc)
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 1a677a0fb9..5e468a4316 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -481,24 +481,26 @@ over USB.")
 (define-public libmtp
   (package
     (name "libmtp")
-    (version "1.1.16")
+    (version "1.1.17")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version
                                  "/libmtp-" version ".tar.gz"))
              (sha256
               (base32
-               "185vh9bds6dcy00ycggg69g4v7m3api40zv8vrcfb3fk3vfzjs2v"))))
+               "1p3r38nvdip40ab1h4scj3mzfjkx6kd14szjqyw9r6wz5pslr8zq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libgcrypt" ,libgcrypt)))
     (propagated-inputs
      ;; libmtp.pc refers to all these.
-     `(("libgcrypt" ,libgcrypt)
-       ("libusb" ,libusb)))
+     `(("libusb" ,libusb)))
     (arguments
      `(#:configure-flags
-       (list (string-append "--with-udev="
+       (list "--disable-static"
+             (string-append "--with-udev="
                             (assoc-ref %outputs "out")
                             "/lib/udev"))))
     (home-page "http://libmtp.sourceforge.net/")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index b3f46c0305..06ef1fa220 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -358,42 +358,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
                         "linux-" version ".tar.xz"))
     (sha256 hash)))
 
-(define-public linux-libre-5.4-version "5.4.17")
+(define-public linux-libre-5.4-version "5.4.19")
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1fbl5knf6pini9lsx8mqkdmf3qbsydqvaxggh6nd1vk9mzv2npwl")))
+        (hash (base32 "1f3pzg8vai5qz19gy9gf3rxs2z4dsw78zjkkfnha8iiy2mqvk14m")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.101")
+(define-public linux-libre-4.19-version "4.19.103")
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1i4bkwankl5q95kgqmmyzdkwmf3b8ppkb8ild9bw12mkpmm1a9my")))
+        (hash (base32 "0hxvqkjy63370sr9j4j0a1kzqwxxdn3i8i6wwc5c2gbzpmqlay5l")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.169")
+(define-public linux-libre-4.14-version "4.14.170")
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "0jc24zvqz3vsv65xxcivzkj6nv27vsy62l50n2h1ysy5jdwsk3nq")))
+        (hash (base32 "1hqp3spi4cqgkqkzx5g2nbp6isz0kdcsj56ilsp6siqiglj662ll")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.212")
+(define-public linux-libre-4.9-version "4.9.213")
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "0c5yjilaq86j6i2hzlxbp2ia7jhnf7kv952ffv7jxdf90sk3irxd")))
+        (hash (base32 "0r7bqpvbpiiniwsm338b38mv6flfgm1r09avxqsakhkh8rvgz1dg")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
 
-(define-public linux-libre-4.4-version "4.4.212")
+(define-public linux-libre-4.4-version "4.4.213")
 (define-public linux-libre-4.4-pristine-source
   (let ((version linux-libre-4.4-version)
-        (hash (base32 "0mx3qyj6w6h7gw7drsfsgl4iyz1695sjnf9hqh4kczci48kw5rj7")))
+        (hash (base32 "1cmwn9zvz14jqjy6qkszglhs2p5h6yh82b2269cbzvibg8y3rxq0")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.4)))
@@ -1538,7 +1538,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
 (define-public strace
   (package
     (name "strace")
-    (version "5.4")
+    (version "5.5")
     (home-page "https://strace.io")
     (source (origin
              (method url-fetch)
@@ -1546,7 +1546,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
                                  "/strace-" version ".tar.xz"))
              (sha256
               (base32
-               "0hd7sb7l99y9rcj8jjc1b6m3ryds17krsymdg3dvd40jsla0bl7p"))))
+               "1zrhpzjlgfwfl8dd53llswmmharm5rbi0zch7lln5sjris69an4z"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -2840,14 +2840,16 @@ time.")
 (define-public lvm2
   (package
     (name "lvm2")
-    (version "2.02.177")
+    (version "2.03.08")
     (source (origin
               (method url-fetch)
-              (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
-                                  version ".tgz"))
+              (uri (list (string-append "ftp://sourceware.org/pub/lvm2/LVM2."
+                                        version ".tgz")
+                         (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
+                                        version ".tgz")))
               (sha256
                (base32
-                "1wl0isn0yz5wvglwylnlqkppafwmvhliq5bd92vjqp5ir4za49a0"))
+                "1j0yis658564rk1ddabkl8vbavp0fdd10gd6qhgyzc3akzf620kf"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2855,7 +2857,7 @@ time.")
 
                   ;; Honor sysconfdir.
                   (substitute* "make.tmpl.in"
-                    (("confdir = .*$")
+                    (("^confdir = .*$")
                      "confdir = @sysconfdir@\n")
                     (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
                      "DEFAULT_SYS_DIR = @sysconfdir@"))
@@ -2866,7 +2868,8 @@ time.")
      `(("pkg-config" ,pkg-config)
        ("procps" ,procps)))                       ;tests use 'pgrep'
     (inputs
-     `(("udev" ,eudev)))
+     `(("libaio" ,libaio)
+       ("udev" ,eudev)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2896,14 +2899,6 @@ time.")
                                               "/lib,-rpath="
                                               (assoc-ref %outputs "out")
                                               "/lib/device-mapper")
-                               ;; TODO: Patch make.tmpl.in to take LDFLAGS
-                               ;; into account so that we don't need to also
-                               ;; set CLDFLAGS.
-                               (string-append "CLDFLAGS=-Wl,-rpath="
-                                              (assoc-ref %outputs "out")
-                                              "/lib,-rpath="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/device-mapper")
                                ;; This is needed when cross-compiling.
                                ,@(if (%current-target-system)
                                      '("ac_cv_func_malloc_0_nonnull=yes"
@@ -2936,7 +2931,26 @@ mapper.  Kernel components are part of Linux-libre.")
      (substitute-keyword-arguments (package-arguments lvm2)
        ((#:configure-flags flags '())
         ;; LVM2 doesn't use Libtool, hence the custom option.
-        `(cons "--enable-static_link" ,flags))))
+        `(append '("--enable-static_link")
+                 ;; Building dmeventd statically is complicated due to a
+                 ;; requirement on libdevmapper.a, which is being phased out
+                 ;; in favor of libdevice-mapper.a, which in turn is is not
+                 ;; easily made available at dmeventd build time.  Just ignore
+                 ;; it until the situation improves.
+                 (delete "--enable-dmeventd" ,flags)))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'configure 'adjust-Makefile
+             (lambda _
+               ;; These fixes are related to the upstream libdm->device_mapper
+               ;; migration and will hopefully be fixed upstream in due time.
+               (substitute* "tools/Makefile.in"
+                 ;; This variable is empty in a static configuration and causes
+                 ;; an erroneous GCC command line.
+                 (("-L\\$\\(interfacebuilddir\\)") "")
+                 ;; Remove obsolete reference to libdevmapper.a.
+                 (("-ldevmapper") ""))
+               #t))))))
     (synopsis "Logical volume management for Linux (statically linked)")))
 
 (define-public wireless-tools
@@ -5258,15 +5272,16 @@ interface in sysfs, which can be accomplished with the included udev rules.")
 (define-public tlp
   (package
     (name "tlp")
-    (version "1.3.0")
+    (version "1.3.1")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/linrunner/TLP/archive/"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/linrunner/TLP.git")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32 "169k3xypq5rq0xiggrlpr73yr2r2x7b2d9vcr9ac96qrgph7sk7r"))))
+        (base32 "14fcnaz9pw534v4d8dddqq4wcvpf1kghr8zlrk62r5lrl46sp1p5"))))
     (native-inputs
      `(("shellcheck" ,shellcheck)))
     (inputs
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 737ab6cae9..dbb95ce387 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
 ;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -166,29 +167,27 @@ interactive development model in mind.")
   (sbcl-package->ecl-package sbcl-fiveam))
 
 (define-public sbcl-bordeaux-threads
-  (let ((commit "5dce49fbc829f4d136a734f5ef4f5d599660984f")
-        (revision "1"))
-    (package
-      (name "sbcl-bordeaux-threads")
-      (version (git-version "0.8.6" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/sionescu/bordeaux-threads.git")
-                      (commit commit)))
-                (sha256
-                 (base32 "1gkh9rz7zw57n3110ikcf4835950wr4hgp8l79id5ai6nd86x7wv"))
-                (file-name
-                 (git-file-name "bordeaux-threads" version))))
-      (inputs `(("alexandria" ,sbcl-alexandria)))
-      (native-inputs `(("fiveam" ,sbcl-fiveam)))
-      (build-system asdf-build-system/sbcl)
-      (synopsis "Portable shared-state concurrency library for Common Lisp")
-      (description "BORDEAUX-THREADS is a proposed standard for a minimal
+  (package
+    (name "sbcl-bordeaux-threads")
+    (version "0.8.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/sionescu/bordeaux-threads.git")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
+              (file-name
+               (git-file-name "bordeaux-threads" version))))
+    (inputs `(("alexandria" ,sbcl-alexandria)))
+    (native-inputs `(("fiveam" ,sbcl-fiveam)))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Portable shared-state concurrency library for Common Lisp")
+    (description "BORDEAUX-THREADS is a proposed standard for a minimal
 MP/Threading interface.  It is similar to the CLIM-SYS threading and lock
 support.")
-      (home-page "https://common-lisp.net/project/bordeaux-threads/")
-      (license license:x11))))
+    (home-page "https://common-lisp.net/project/bordeaux-threads/")
+    (license license:x11)))
 
 (define-public cl-bordeaux-threads
   (sbcl-package->cl-source-package sbcl-bordeaux-threads))
@@ -267,7 +266,7 @@ logical continuation of Stefil.  It focuses on interactive debugging.")
 (define-public sbcl-flexi-streams
   (package
     (name "sbcl-flexi-streams")
-    (version "1.0.16")
+    (version "1.0.18")
     (source
      (origin
        (method git-fetch)
@@ -276,7 +275,7 @@ logical continuation of Stefil.  It focuses on interactive debugging.")
              (commit (string-append "v" version))))
        (file-name (git-file-name "flexi-streams" version))
        (sha256
-        (base32 "0gvykjlmja060zqq6nn6aqxlshh6r6ijahmmgf20q0d839rwpgxc"))))
+        (base32 "0bjv7fd2acknidc5dyi3h85pn10krxv5jyxs1xg8jya2rlfv7f1j"))))
     (build-system asdf-build-system/sbcl)
     (arguments
      `(#:phases
@@ -304,7 +303,7 @@ streams which are similar to string streams.")
 (define-public sbcl-cl-ppcre
   (package
     (name "sbcl-cl-ppcre")
-    (version "2.0.11")
+    (version "2.1.1")
     (source
      (origin
        (method git-fetch)
@@ -313,7 +312,7 @@ streams which are similar to string streams.")
              (commit (string-append "v" version))))
        (file-name (git-file-name "cl-ppcre" version))
        (sha256
-        (base32 "0q3iany07vgqm144lw6pj0af2d3vsikpbkwcxr30fci3kzsq4f49"))))
+        (base32 "0dwvr29diqzcg5n6jvbk2rnd90i05l7n828hhw99khmqd0kz7xsi"))))
     (build-system asdf-build-system/sbcl)
     (native-inputs `(("flexi-streams" ,sbcl-flexi-streams)))
     (synopsis "Portable regular expression library for Common Lisp")
@@ -330,32 +329,30 @@ compatible with ANSI-compliant Common Lisp implementations.")
   (sbcl-package->ecl-package sbcl-cl-ppcre))
 
 (define sbcl-cl-unicode-base
-  (let ((revision "1")
-        (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea"))
-    (package
-      (name "sbcl-cl-unicode-base")
-      (version (string-append "0.1.5-" revision "." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/edicl/cl-unicode.git")
-                      (commit commit)))
-                (file-name (string-append "cl-unicode-" version "-checkout"))
-                (sha256
-                 (base32
-                  "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki"))))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:asd-file "cl-unicode.asd"
-         #:asd-system-name "cl-unicode/base"))
-      (inputs
-       `(("cl-ppcre" ,sbcl-cl-ppcre)))
-      (home-page "http://weitz.de/cl-unicode/")
-      (synopsis "Portable Unicode library for Common Lisp")
-      (description "CL-UNICODE is a portable Unicode library Common Lisp, which
+  (package
+    (name "sbcl-cl-unicode-base")
+    (version "0.1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/edicl/cl-unicode.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     '(#:asd-file "cl-unicode.asd"
+       #:asd-system-name "cl-unicode/base"))
+    (inputs
+     `(("cl-ppcre" ,sbcl-cl-ppcre)))
+    (home-page "http://weitz.de/cl-unicode/")
+    (synopsis "Portable Unicode library for Common Lisp")
+    (description "CL-UNICODE is a portable Unicode library Common Lisp, which
 is compatible with perl.  It is pretty fast, thread-safe, and compatible with
 ANSI-compliant Common Lisp implementations.")
-      (license license:bsd-2))))
+    (license license:bsd-2)))
 
 (define-public sbcl-cl-unicode
   (package
@@ -629,6 +626,9 @@ from other CLXes around the net.")
      `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
        ("sbcl-cl-unicode" ,sbcl-cl-unicode)))))
 
+(define-public ecl-cl-ppcre-unicode
+  (sbcl-package->ecl-package sbcl-cl-ppcre-unicode))
+
 ;; The slynk that users expect to install includes all of slynk's contrib
 ;; modules.  Therefore, we build the base module and all contribs first; then
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
@@ -1417,7 +1417,7 @@ In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
 (define-public sbcl-split-sequence
   (package
     (name "sbcl-split-sequence")
-    (version "1.4.1")
+    (version "2.0.0")
     (source
      (origin
        (method git-fetch)
@@ -1426,13 +1426,11 @@ In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports:
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0"))
+         "0jcpnx21hkfwqj5fvp7kc6pn1qcz9hk7g2s5x8h0349x1j2irln0"))
        (file-name (git-file-name "split-sequence" version))))
     (build-system asdf-build-system/sbcl)
-    (arguments
-     ;; TODO: Tests seem to be broken.
-     ;; https://github.com/sharplispers/split-sequence/issues/8
-     `(#:tests? #f))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
     (synopsis "Member of the Common Lisp Utilities family of programs")
     (description
      "Splits sequence into a list of subsequences delimited by objects
@@ -1570,7 +1568,7 @@ with @command{colorize} support."))))
 (define-public sbcl-cl-fad
   (package
     (name "sbcl-cl-fad")
-    (version "0.7.5")
+    (version "0.7.6")
     (source
      (origin
        (method git-fetch)
@@ -1579,7 +1577,7 @@ with @command{colorize} support."))))
              (commit (string-append "v" version))))
        (sha256
         (base32
-         "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m"))
+         "1gc8i82v6gks7g0lnm54r4prk2mklidv2flm5fvbr0a7rsys0vpa"))
        (file-name (string-append "cl-fad" version "-checkout"))))
     (build-system asdf-build-system/sbcl)
     (inputs
@@ -3180,44 +3178,43 @@ Lisp (from GBBopen project).")
 (define-public ecl-portable-threada
   (sbcl-package->ecl-package sbcl-portable-threads))
 
-(define-public sbcl-usocket-boot0
+(define sbcl-usocket-boot0
   ;; usocket's test rely on usocket-server which depends on usocket itself.
   ;; We break this cyclic dependency with -boot0 that packages usocket.
-  (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9"))
-    (package
-      (name "sbcl-usocket-boot0")
-      (version (git-version "0.7.1" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/usocket/usocket/")
-               (commit commit)))
-         (file-name (git-file-name "usocket" version))
-         (sha256
-          (base32
-           "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("split-sequence" ,sbcl-split-sequence)))
-      (arguments
-       `(#:tests? #f
-         #:asd-system-name "usocket"))
-      (home-page "https://common-lisp.net/project/usocket/")
-      (synopsis "Universal socket library for Common Lisp (server side)")
-      (description
-       "This library strives to provide a portable TCP/IP and UDP/IP socket
+  (package
+    (name "sbcl-usocket-boot0")
+    (version "0.8.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/usocket/usocket/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name "usocket" version))
+       (sha256
+        (base32
+         "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("split-sequence" ,sbcl-split-sequence)))
+    (arguments
+     `(#:tests? #f
+       #:asd-system-name "usocket"))
+    (home-page "https://common-lisp.net/project/usocket/")
+    (synopsis "Universal socket library for Common Lisp (server side)")
+    (description
+     "This library strives to provide a portable TCP/IP and UDP/IP socket
 interface for as many Common Lisp implementations as possible, while keeping
 the abstraction and portability layer as thin as possible.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public sbcl-usocket-server
   (package
     (inherit sbcl-usocket-boot0)
     (name "sbcl-usocket-server")
     (inputs
-     `(("usocket" ,sbcl-usocket-boot0)
-       ("portable-threads" ,sbcl-portable-threads)))
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("usocket" ,sbcl-usocket-boot0)))
     (arguments
      '(#:asd-system-name "usocket-server"))
     (synopsis "Universal socket library for Common Lisp (server side)")))
@@ -3243,7 +3240,7 @@ the abstraction and portability layer as thin as possible.")
 (define-public cl-usocket
   (sbcl-package->cl-source-package sbcl-usocket))
 
-(define-public ecl-socket
+(define-public ecl-usocket
   (sbcl-package->ecl-package sbcl-usocket))
 
 (define-public sbcl-s-xml
@@ -3666,45 +3663,45 @@ the format used by the popular compression tool bzip2.")
   (sbcl-package->cl-source-package sbcl-chipz))
 
 (define-public sbcl-drakma
-  (let ((version "2.0.4")
-        (commit "7647c0ae842ff2058624e53979c7f297760c97a7")
-        (revision "1"))
-    (package
-      (name "sbcl-drakma")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/edicl/drakma.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1c4i9wakhj5pxfyyykxshdmv3180sbkrx6fcyynikmc0jd0rh84r"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("sbcl-puri" ,sbcl-puri)
-         ("sbcl-cl-base64" ,sbcl-cl-base64)
-         ("sbcl-chunga" ,sbcl-chunga)
-         ("sbcl-flexi-streams" ,sbcl-flexi-streams)
-         ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
-         ("sbcl-chipz" ,sbcl-chipz)
-         ("sbcl-usocket" ,sbcl-usocket)
-         ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
-      (native-inputs
-       `(("sbcl-fiveam" ,sbcl-fiveam)))
-      (home-page "https://edicl.github.io/drakma/")
-      (synopsis "HTTP client written in Common Lisp")
-      (description
-       "Drakma is a full-featured HTTP client implemented in Common Lisp.  It
+  (package
+    (name "sbcl-drakma")
+    (version "2.0.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/edicl/drakma.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1441idnyif9xzx3ln1p3fg36k2v9h4wasjqrzc8y52j61420qpci"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("sbcl-puri" ,sbcl-puri)
+       ("sbcl-cl-base64" ,sbcl-cl-base64)
+       ("sbcl-chunga" ,sbcl-chunga)
+       ("sbcl-flexi-streams" ,sbcl-flexi-streams)
+       ("sbcl-cl-ppcre" ,sbcl-cl-ppcre)
+       ("sbcl-chipz" ,sbcl-chipz)
+       ("sbcl-usocket" ,sbcl-usocket)
+       ("sbcl-cl+ssl" ,sbcl-cl+ssl)))
+    (native-inputs
+     `(("sbcl-fiveam" ,sbcl-fiveam)))
+    (home-page "https://edicl.github.io/drakma/")
+    (synopsis "HTTP client written in Common Lisp")
+    (description
+     "Drakma is a full-featured HTTP client implemented in Common Lisp.  It
 knows how to handle HTTP/1.1 chunking, persistent connections, re-usable
 sockets, SSL, continuable uploads, file uploads, cookies, and more.")
-      (license license:bsd-2))))
+    (license license:bsd-2)))
 
 (define-public cl-drakma
   (sbcl-package->cl-source-package sbcl-drakma))
 
+(define-public ecl-drakma
+  (sbcl-package->ecl-package sbcl-drakma))
+
 (define-public sbcl-hunchentoot
   (package
     (name "sbcl-hunchentoot")
@@ -4105,36 +4102,37 @@ Lisp.")
   (sbcl-package->cl-source-package sbcl-fast-http))
 
 (define-public sbcl-static-vectors
-  (let ((commit "0681eac1f49370cde03e64b077251e8abf47d702")
-        (revision "1"))
-    (package
-     (name "sbcl-static-vectors")
-     (version (git-version "1.8.3" revision commit))
-     (source
-      (origin
+  (package
+    (name "sbcl-static-vectors")
+    (version "1.8.4")
+    (source
+     (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/sionescu/static-vectors.git")
-             (commit commit)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "138nlsq14hv8785ycjm6jw3i6ablhq8vcwys7q09y80arcgrg6r3"))))
-     (native-inputs
-      `(("sbcl-fiveam" ,sbcl-fiveam)))
-     (inputs
-      `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
-        ("sbcl-cffi" ,sbcl-cffi)))
-     (build-system asdf-build-system/sbcl)
-     (home-page "http://common-lisp.net/projects/iolib/")
-     (synopsis "Allocate SIMPLE-ARRAYs in static memory")
-     (description
-      "With @code{static-vectors}, you can create vectors allocated in static
+        (base32 "0qvf9z6bhwhm8n45fjwkm7j8dcb58szfvndky65cyn4lpdval7m1"))))
+    (native-inputs
+     `(("sbcl-fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
+       ("sbcl-cffi" ,sbcl-cffi)))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/sionescu/static-vectors")
+    (synopsis "Allocate SIMPLE-ARRAYs in static memory")
+    (description
+     "With @code{static-vectors}, you can create vectors allocated in static
 memory.")
-     (license license:expat))))
+    (license license:expat)))
 
 (define-public cl-static-vectors
   (sbcl-package->cl-source-package sbcl-static-vectors))
 
+(define-public ecl-static-vectors
+  (sbcl-package->ecl-package sbcl-static-vectors))
+
 (define-public sbcl-marshal
   (let ((commit "eff1b15f2b0af2f26f71ad6a4dd5c4beab9299ec")
         (revision "1"))
@@ -5225,7 +5223,7 @@ decoding routines for IDNA, the International Domain Names in Applications.")
   (package
     (name "sbcl-swap-bytes")
     (build-system asdf-build-system/sbcl)
-    (version "1.1")
+    (version "1.2")
     (home-page "https://github.com/sionescu/swap-bytes")
     (source
      (origin
@@ -5236,14 +5234,11 @@ decoding routines for IDNA, the International Domain Names in Applications.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1qysbv0jngdfkv53y874qjhcxc4qi8ixaqq6j8bzxh5z0931wv55"))))
+         "1hw1v1lw26rifyznpnj1csphha9jgzwpiic16ni3pvs6hcsni9rz"))))
     (inputs
      `(("trivial-features" ,sbcl-trivial-features)))
     (native-inputs
      `(("fiveam" ,sbcl-fiveam)))
-    (arguments
-     ;; TODO: Tests fail, why?
-     `(#:tests? #f))
     (synopsis "Efficient endianness conversion for Common Lisp")
     (description "This Common Lisp library provides optimized byte-swapping
 primitives.  The library can change endianness of unsigned integers of length
@@ -5970,6 +5965,42 @@ This package uses fare-quasiquote with named-readtable.")))
   (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
 
 ;; TODO: Add support for component-less system in asdf-build-system/sbcl.
+(define-public sbcl-fare-quasiquote-extras
+  (package
+    (inherit sbcl-fare-quasiquote)
+    (name "sbcl-fare-quasiquote-extras")
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("fare-quasiquote-optima" ,sbcl-fare-quasiquote-optima)
+       ("fare-quasiquote-readtable" ,sbcl-fare-quasiquote-readtable)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib/" (%lisp-type))))
+               (mkdir-p lib)
+               (install-file "fare-quasiquote-extras.asd" lib)
+               #t)))
+         (add-after 'create-asd-file 'fix-asd-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib/" (%lisp-type)))
+                    (asd (string-append lib "/fare-quasiquote-extras.asd")))
+               (substitute* asd
+                 ((":class")
+                  "")
+                 (("asdf/bundle:prebuilt-system")
+                  "")
+                 ((":components")
+                  "")
+                 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
+                  "")))
+             #t)))))
+    (description "This library combines @code{fare-quasiquote-readtable} and
+@code{fare-quasiquote-optima}.")))
+
 (define-public cl-fare-quasiquote-extras
   (package
     (inherit cl-fare-quasiquote)
@@ -5983,7 +6014,7 @@ This package uses fare-quasiquote with named-readtable.")))
 @code{fare-quasiquote-optima}.")))
 
 (define-public sbcl-trivia.level0
-  (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603")
+  (let ((commit "574901ac376ae54c9d37169fd5efab9b3b8fcc63")
         (revision "1"))
     (package
       (name "sbcl-trivia.level0")
@@ -5999,7 +6030,7 @@ This package uses fare-quasiquote with named-readtable.")))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "11qbab30qqnfy9mx3x9fvgcw1jbvh1qn2cqv3p8xdn2m8981jvhr"))))
+           "0hf53n71xzr9sjwrxis5fivx3drclf4s39h5ck8vh21ndqj9zvdk"))))
       (inputs
        `(("alexandria" ,sbcl-alexandria)))
       (synopsis "Pattern matching in Common Lisp")
@@ -6877,8 +6908,8 @@ compression/decompression using bindings to the lzlib C library.")
   (sbcl-package->ecl-package sbcl-lzlib))
 
 (define-public sbcl-chanl
-  (let ((commit "2362b57550c2c9238cc882d03553aaa1040b7340")
-        (revision "0"))
+  (let ((commit "56e90a126c78b39bb621a01585e8d3b985238e8c")
+        (revision "1"))
     (package
       (name "sbcl-chanl")
       (version (git-version "0.4.1" revision commit))
@@ -6891,7 +6922,7 @@ compression/decompression using bindings to the lzlib C library.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0ag3wz7yrqwp0s5069wwda98z3rrqd25spg8sa8rdqghj084w28w"))))
+           "0b1cf6c12qx5cy1fw2z42jgh566rp3l8nv5qf0qqc569s7bgmrh4"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
@@ -6909,26 +6940,7 @@ threads.")
   (sbcl-package->cl-source-package sbcl-chanl))
 
 (define-public ecl-chanl
-  (let ((base (sbcl-package->ecl-package sbcl-chanl)))
-    (package
-      (inherit base)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ;; The CHANL.ACTORS package uses the :ARGUMENTS option of
-         ;; DEFINE-METHOD-COMBINATION, which is not implemented in ECL yet
-         ;; (see https://gitlab.com/embeddable-common-lisp/ecl/issues/305).
-         ;; So let's disable it for now, as it allows compiling the library
-         ;; and using the rest of it.
-         ((#:phases phases '%standard-phases)
-          `(modify-phases ,phases
-             (add-after 'unpack 'disable-chanl-actors
-               (lambda _
-                 (substitute* "chanl.asd"
-                   (("\\(:file \"actors\"\\)") ""))
-                 #t))))
-         ;; Disable the tests for now, as the SEND-SEQUENCE test seems to
-         ;; never end.
-         ((#:tests? _ #f) #f))))))
+  (sbcl-package->ecl-package sbcl-chanl))
 
 (define-public sbcl-cl-store
   (let ((commit "c787337a16ea8cf8a06227f35933a4ec774746b3")
@@ -7181,7 +7193,7 @@ implementation specific equivalent.")
          ("trivial-garbage" ,sbcl-trivial-garbage)
          ("bordeaux-threads" ,sbcl-bordeaux-threads)
          ("named-readtables" ,sbcl-named-readtables)
-         ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)
+         ("fare-quasiquote-extras" ,sbcl-fare-quasiquote-extras)
          ("parse-declarations-1.0" ,sbcl-parse-declarations)
          ("global-vars" ,sbcl-global-vars)
          ("trivial-file-size" ,sbcl-trivial-file-size)
@@ -7543,6 +7555,9 @@ docstrings for your library.")
 (define-public cl-documentation-utils
   (sbcl-package->cl-source-package sbcl-documentation-utils))
 
+(define-public ecl-documentation-utils
+  (sbcl-package->ecl-package sbcl-documentation-utils))
+
 (define-public sbcl-form-fiddle
   (let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
         (revision "0"))
@@ -10163,3 +10178,415 @@ them as PNG files.")
 
 (define-public ecl-cl-qrencode
   (sbcl-package->ecl-package sbcl-cl-qrencode))
+
+(define-public sbcl-hdf5-cffi
+  (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
+        (revision "1"))
+    (package
+      (name "sbcl-hdf5-cffi")
+      (version (git-version "1.8.18" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hdfgroup/hdf5-cffi.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Common Lisp bindings for the HDF5 library")
+      (description
+       "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
+      (home-page "https://github.com/hdfgroup/hdf5-cffi")
+      (license (license:non-copyleft
+                (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
+                               commit
+                               "/LICENSE")))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("cffi-grovel" ,sbcl-cffi-grovel)
+         ("hdf5" ,hdf5-1.10)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "hdf5-cffi"
+         #:asd-file "hdf5-cffi.asd"
+         #:test-asd-file "hdf5-cffi.test.asd"
+         ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
+         ;; I don't know if there is a way to tell asdf-build-system to load
+         ;; an additional system first, so tests are disabled.
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/library.lisp"
+                 (("libhdf5.so")
+                  (string-append
+                   (assoc-ref inputs "hdf5")
+                   "/lib/libhdf5.so")))))
+           (add-after 'unpack 'fix-dependencies
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "hdf5-cffi.asd"
+                 ((":depends-on \\(:cffi\\)")
+                  ":depends-on (:cffi :cffi-grovel)"))
+               (substitute* "hdf5-cffi.test.asd"
+                 ((":depends-on \\(:cffi :hdf5-cffi")
+                  ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
+
+(define-public cl-hdf5-cffi
+  (sbcl-package->cl-source-package sbcl-hdf5-cffi))
+
+(define-public ecl-hdf5-cffi
+  (sbcl-package->ecl-package sbcl-hdf5-cffi))
+
+(define-public sbcl-cl-randist
+  (package
+    (name "sbcl-cl-randist")
+    (version "0.4.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lvaruzza/cl-randist.git")
+             (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Random distributions for Common Lisp")
+    (description
+     "Manual translation from C to Common Lisp of some random number
+generation functions from the GSL library.")
+    (home-page "https://github.com/lvaruzza/cl-randist")
+    (license license:bsd-2)
+    (arguments
+     `(#:asd-system-name "cl-randist"
+       #:asd-file "cl-randist.asd"
+       #:tests? #f))))
+
+(define-public cl-randist
+  (sbcl-package->cl-source-package sbcl-cl-randist))
+
+(define-public ecl-cl-randist
+  (sbcl-package->ecl-package sbcl-cl-randist))
+
+(define-public sbcl-float-features
+  (package
+    (name "sbcl-float-features")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Shinmera/float-features.git")
+             (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Common Lisp IEEE float portability library")
+    (description
+     "Portability library for IEEE float features that are not
+covered by the Common Lisp standard.")
+    (home-page "https://github.com/Shinmera/float-features")
+    (license license:zlib)
+    (inputs
+     `(("documentation-utils" ,sbcl-documentation-utils)))
+    (arguments
+     `(#:asd-system-name "float-features"
+       #:asd-file "float-features.asd"
+       #:tests? #f))))
+
+(define-public cl-float-features
+  (sbcl-package->cl-source-package sbcl-float-features))
+
+(define-public ecl-float-features
+  (sbcl-package->ecl-package sbcl-float-features))
+
+(define-public sbcl-function-cache
+  (package
+    (name "sbcl-function-cache")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/AccelerationNet/function-cache.git")
+             (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
+    (build-system asdf-build-system/sbcl)
+    (synopsis "Function caching / memoization library for Common Lisp")
+    (description
+     "A common lisp library that provides extensible function result
+caching based on arguments (an expanded form of memoization).")
+    (home-page "https://github.com/AccelerationNet/function-cache")
+    (license
+     (license:non-copyleft
+      "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-interpol" ,sbcl-cl-interpol)
+       ("iterate" ,sbcl-iterate)
+       ("symbol-munger" ,sbcl-symbol-munger)
+       ("closer-mop" ,sbcl-closer-mop)))
+    (arguments
+     `(#:asd-system-name "function-cache"
+       #:asd-file "function-cache.asd"
+       #:tests? #f))))
+
+(define-public cl-function-cache
+  (sbcl-package->cl-source-package sbcl-function-cache))
+
+(define-public ecl-function-cache
+  (sbcl-package->ecl-package sbcl-function-cache))
+
+(define-public sbcl-type-r
+  (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
+        (revision "1"))
+    (package
+      (name "sbcl-type-r")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/guicho271828/type-r.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Parser interface for Common Lisp built-in compound types")
+      (description
+       "Collections of accessor functions and patterns to access
+the elements in compound type specifier, e.g. @code{dimensions} in
+@code{(array element-type dimensions)}")
+      (home-page "https://github.com/guicho271828/type-r")
+      (license license:lgpl3+)
+      (inputs
+       `(("trivia" ,sbcl-trivia)
+         ("alexandria" ,sbcl-alexandria)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "type-r"
+         #:asd-file "type-r.asd"
+         #:test-asd-file "type-r.test.asd")))))
+
+(define-public cl-type-r
+  (sbcl-package->cl-source-package sbcl-type-r))
+
+(define-public sbcl-trivialib-type-unify
+  (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
+        (revision "1"))
+    (package
+      (name "sbcl-trivialib-type-unify")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/guicho271828/trivialib.type-unify.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Common Lisp type unification")
+      (description
+       "Unifies a parametrized type specifier against an actual type specifier.
+Importantly, it handles complicated array-subtypes and number-related types
+correctly.")
+      (home-page "https://github.com/guicho271828/trivialib.type-unify")
+      (license license:lgpl3+)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("trivia" ,sbcl-trivia)
+         ("introspect-environment" ,sbcl-introspect-environment)
+         ("type-r" ,sbcl-type-r)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "trivialib.type-unify"
+         #:asd-file "trivialib.type-unify.asd"
+         #:test-asd-file "trivialib.type-unify.test.asd")))))
+
+(define-public cl-trivialib-type-unify
+  (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
+
+(define-public sbcl-specialized-function
+  (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
+        (revision "1"))
+    (package
+      (name "sbcl-specialized-function")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/numcl/specialized-function.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Julia-like dispatch for Common Lisp")
+      (description
+       "This library is part of NUMCL.  It provides a macro
+@code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
+lazily compiling a type-specific version of the function from the same
+code.  The main target of this macro is speed.")
+      (home-page "https://github.com/numcl/specialized-function")
+      (license license:lgpl3+)
+      (inputs
+       `(("trivia" ,sbcl-trivia)
+         ("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("lisp-namespace" ,sbcl-lisp-namespace)
+         ("type-r" ,sbcl-type-r)
+         ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "specialized-function"
+         #:asd-file "specialized-function.asd"
+         #:test-asd-file "specialized-function.test.asd")))))
+
+(define-public cl-specialized-function
+  (sbcl-package->cl-source-package sbcl-specialized-function))
+
+(define-public sbcl-constantfold
+  (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
+        (revision "1"))
+    (package
+      (name "sbcl-constantfold")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/numcl/constantfold.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Support library for numcl")
+      (description
+       "Support library for numcl.  Registers a function as an
+additional form that is considered as a candidate for a constant.")
+      (home-page "https://github.com/numcl/constantfold")
+      (license license:lgpl3+)
+      (inputs
+       `(("trivia" ,sbcl-trivia)
+         ("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("lisp-namespace" ,sbcl-lisp-namespace)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "constantfold"
+         #:asd-file "constantfold.asd"
+         #:test-asd-file "constantfold.test.asd")))))
+
+(define-public cl-constantfold
+  (sbcl-package->cl-source-package sbcl-constantfold))
+
+(define-public sbcl-gtype
+  (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
+        (revision "1"))
+    (package
+      (name "sbcl-gtype")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/numcl/gtype.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "C++/Julia-like parametric types in Common Lisp")
+      (description
+       "Support library for numcl that provides Julia-like runtime parametric
+type correctness in Common Lisp.  It is based on CLtL2 extensions.")
+      (home-page "https://github.com/numcl/gtype")
+      (license license:lgpl3+)
+      (inputs
+       `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
+         ("trivial-cltl2" ,sbcl-trivial-cltl2)
+         ("trivia" ,sbcl-trivia)
+         ("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("type-r" ,sbcl-type-r)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "gtype"
+         #:asd-file "gtype.asd"
+         #:test-asd-file "gtype.test.asd")))))
+
+(define-public cl-gtype
+  (sbcl-package->cl-source-package sbcl-gtype))
+
+(define-public sbcl-numcl
+  (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
+        (revision "1"))
+    (package
+      (name "sbcl-numcl")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/numcl/numcl.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Numpy clone in Common Lisp")
+      (description
+       "This is a Numpy clone in Common Lisp.  At the moment the
+library is written in pure Common Lisp, focusing more on correctness
+and usefulness, not speed.  Track the progress at
+@url{https://github.com/numcl/numcl/projects/1}.")
+      (home-page "https://github.com/numcl/numcl")
+      (license license:lgpl3+)
+      (inputs
+       `(("trivia" ,sbcl-trivia)
+         ("alexandria" ,sbcl-alexandria)
+         ("iterate" ,sbcl-iterate)
+         ("lisp-namespace" ,sbcl-lisp-namespace)
+         ("type-r" ,sbcl-type-r)
+         ("constantfold" ,sbcl-constantfold)
+         ("cl-randist" ,sbcl-cl-randist)
+         ("float-features" ,sbcl-float-features)
+         ("function-cache" ,sbcl-function-cache)
+         ("specialized-function" ,sbcl-specialized-function)
+         ("gtype" ,sbcl-gtype)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (arguments
+       `(#:asd-system-name "numcl"
+         #:asd-file "numcl.asd"
+         #:test-asd-file "numcl.test.asd")))))
+
+(define-public cl-numcl
+  (sbcl-package->cl-source-package sbcl-numcl))
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index f82288a5ac..369d4fc4ec 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -797,7 +797,7 @@ enough to play the original mainframe Zork all the way through.")
 (define-public txr
   (package
     (name "txr")
-    (version "230")
+    (version "232")
     (source
      (origin
        (method git-fetch)
@@ -808,7 +808,7 @@ enough to play the original mainframe Zork all the way through.")
        (patches (search-patches "txr-shell.patch"))
        (sha256
         (base32
-         "1ma6nbqsnl4f8ndh47zzc8n5vzcny66v0z3ndddgm3g0bqaxzjzm"))))
+         "1vcnask4a1rxrljp4rcbkfihrndkv25l256l125vv39gjhf315xp"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("cc=gcc")
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index a69291ec8a..45e08e066a 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +35,7 @@
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages tls)
@@ -338,40 +340,130 @@ secure session between the peers.")
 (define-public lua5.2-sec
   (make-lua-sec "lua5.2-sec" lua-5.2))
 
-(define-public lua-lgi
+(define-public lua-penlight
+  (package
+    (name "lua-penlight")
+    (version "1.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Tieske/Penlight.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0qc2d1riyr4b5a0gnsmdw2lz5pw65s4ac60hc34w3mmk9l6yg6nl"))))
+    (build-system trivial-build-system)
+    (inputs
+     `(("lua" ,lua)))
+    (propagated-inputs
+     `(("lua-filesystem" ,lua-filesystem)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((source (assoc-ref %build-inputs "source"))
+                (lua-version ,(version-major+minor (package-version lua)))
+                (destination (string-append (assoc-ref %outputs "out")
+                                            "/share/lua/" lua-version)))
+           (mkdir-p destination)
+           (with-directory-excursion source
+             (copy-recursively "lua/" destination)))
+         #t)))
+    (home-page "http://tieske.github.io/Penlight/")
+    (synopsis "Collection of general purpose libraries for the Lua language")
+    (description "Penlight is a set of pure Lua libraries focusing on
+input data handling (such as reading configuration files), functional
+programming (such as map, reduce, placeholder expressions,etc), and OS
+path management.  Much of the functionality is inspired by the Python
+standard libraries.")
+    (license license:expat)))
+
+(define-public lua-ldoc
+  (package
+    (name "lua-ldoc")
+    (version "1.4.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/stevedonovan/LDoc.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1h0cf7bp4am54r0j8lhjs2l1c7q5vz74ba0jvw9qdbaqimls46g8"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("lua" ,lua)))
+    (propagated-inputs
+     `(("lua-penlight" ,lua-penlight)))
+    (arguments
+     `(#:tests? #f                 ;tests must run after installation.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-installation-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (lua-version ,(version-major+minor (package-version lua))))
+               (substitute* "makefile"
+                 (("LUA=.*") "#\n")
+                 (("(LUA_PREFIX=).*" _ prefix)
+                  (string-append prefix out "\n"))
+                 (("(LUA_BINDIR=).*" _ prefix)
+                  (string-append prefix out "/bin\n"))
+                 (("(LUA_SHAREDIR=).*" _ prefix)
+                  (string-append prefix out "/share/lua/" lua-version "\n"))))
+             #t))
+         (delete 'configure)
+         (add-before 'install 'create-bin-directory
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
+             #t)))))
+    (home-page "http://stevedonovan.github.io/ldoc/")
+    (synopsis "Lua documentation generator")
+    (description
+     "LDoc is a LuaDoc-compatible documentation generation system for
+Lua source code.  It parses the declaration and documentation comments
+in a set of Lua source files and produces a set of XHTML pages
+describing the commented declarations and functions.")
+    (license license:expat)))
+
+(define (make-lua-lgi name lua)
   (package
-    (name "lua-lgi")
+    (name name)
     (version "0.9.2")
     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-               (url "https://github.com/pavouk/lgi")
-               (commit version)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32
-          "03rbydnj411xpjvwsyvhwy4plm96481d7jax544mvk7apd8sd5jj"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pavouk/lgi")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "03rbydnj411xpjvwsyvhwy4plm96481d7jax544mvk7apd8sd5jj"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:make-flags (list "CC=gcc"
-                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure) ; no configure script
+         (delete 'configure)            ; no configure script
          (add-before 'build 'set-env
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; we need to load cairo dynamically
-             (let* ((cairo (string-append
-                             (assoc-ref inputs "cairo") "/lib" )))
+             ;; We need to load cairo dynamically.
+             (let* ((cairo (string-append (assoc-ref inputs "cairo") "/lib")))
                (setenv "LD_LIBRARY_PATH" cairo)
                #t)))
          (add-before 'build 'set-lua-version
            (lambda _
-             ;; lua version and therefore install directories are hardcoded
-             ;; FIXME: This breaks when we update lua to >=5.3
+             ;; Lua version and therefore install directories are hardcoded.
              (substitute* "./lgi/Makefile"
-               (("LUA_VERSION=5.1") "LUA_VERSION=5.2"))
+               (("LUA_VERSION=5.1")
+                (format #f
+                        "LUA_VERSION=~a"
+                        ,(version-major+minor (package-version lua)))))
              #t))
          (add-before 'check 'skip-test-gtk
            (lambda _
@@ -392,26 +484,35 @@ secure session between the peers.")
                              (assoc-ref inputs "xorg-server")))
              (setenv "DISPLAY" ":1")
              #t)))))
+    (native-inputs
+     `(("dbus" ,dbus)                   ;tests use 'dbus-run-session'
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("cairo" ,cairo)
        ("glib" ,glib)
-       ("pango" ,pango)
+       ("gobject-introspection" ,gobject-introspection)
        ("gtk" ,gtk+-2)
-       ("lua" ,lua)
-       ("cairo" ,cairo)
        ("libffi" ,libffi)
+       ("lua" ,lua)
+       ("pango" ,pango)
        ("xorg-server" ,xorg-server)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("dbus" ,dbus)))                          ;tests use 'dbus-run-session'
     (home-page "https://github.com/pavouk/lgi/")
     (synopsis "Lua bridge to GObject based libraries")
     (description
-     "LGI is gobject-introspection based dynamic Lua binding to GObject
-based libraries.  It allows using GObject-based libraries directly from Lua.
+     "LGI is gobject-introspection based dynamic Lua binding to GObject based
+libraries.  It allows using GObject-based libraries directly from Lua.
 Notable examples are GTK+, GStreamer and Webkit.")
     (license license:expat)))
 
+(define-public lua-lgi
+  (make-lua-lgi "lua-lgi" lua))
+
+(define-public lua5.1-lgi
+  (make-lua-lgi "lua5.1-lgi" lua-5.1))
+
+(define-public lua5.2-lgi
+  (make-lua-lgi "lua5.2-lgi" lua-5.2))
+
 (define (make-lua-lpeg name lua)
   (package
     (name name)
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index 5c5e70ff56..dac2ef6d24 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -281,7 +281,7 @@ with freedesktop.org standard.")
                                (string-append "--sysconfdir="
                                               (assoc-ref %outputs "out")
                                               "/etc"))))
-    (home-page "http://ignorantguru.github.io/spacefm/")
+    (home-page "https://ignorantguru.github.io/spacefm/")
     (synopsis "Multi-panel tabbed file manager")
     (description "SpaceFM is a graphical, multi-panel, tabbed file manager
 based on PCManFM with built-in virtual file system, udev-based device manager,
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index 12c92e52d1..a440491633 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019, 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
+;;; Copyright © 2020 Fakhri Sajadi <f.sajadi@pantherx.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -379,6 +380,7 @@ the operating system LXQt is running on.")
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
        ("xf86-input-libinput" ,xf86-input-libinput)
+       ("xkeyboard-config" ,xkeyboard-config)
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -394,6 +396,14 @@ the operating system LXQt is running on.")
                (("DESTINATION \"\\$\\{LXQT_ETC_XDG_DIR\\}")
                 "DESTINATION \"etc/xdg"))
              #t))
+         (add-after 'unpack 'set-xkeyboard-config-file-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Set the file name to xkeyboard-config.
+             (let ((xkb (assoc-ref inputs "xkeyboard-config")))
+               (substitute* "lxqt-config-input/keyboardlayoutconfig.h"
+                 (("/usr/share/X11/xkb/rules/base.lst")
+                  (string-append xkb "/share/X11/xkb/rules/base.lst")))
+               #t)))
          (add-after 'unpack 'patch-translations-dir
            (lambda* (#:key outputs #:allow-other-keys)
              (substitute* '("lxqt-config-file-associations/CMakeLists.txt"
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 0538342977..1a9f9e5e5c 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -397,9 +397,11 @@ aliasing facilities to work just as they would on normal mail.")
      `(("cyrus-sasl" ,cyrus-sasl)
        ("gdbm" ,gdbm)
        ("gpgme" ,gpgme)
+       ("libidn2" ,libidn2)
        ("ncurses" ,ncurses)
        ("openssl" ,openssl)
-       ("perl" ,perl)))
+       ("perl" ,perl)
+       ("sqlite" ,sqlite)))
     (arguments
      `(#:configure-flags '("--enable-smtp"
                            "--enable-imap"
@@ -407,8 +409,11 @@ aliasing facilities to work just as they would on normal mail.")
                            "--enable-gpgme"
                            "--enable-hcache" ; for header caching
                            "--enable-sidebar"
+                           "--enable-autocrypt"
                            "--with-ssl"
                            "--with-sasl"
+                           "--with-sqlite3" ; required for Autocrypt
+                           "--with-idn2" ; recommended for Autocrypt
                            ;; so that mutt does not check whether the path
                            ;; exists, which it does not in the chroot
                            "--with-mailpath=/var/mail")))
@@ -2301,14 +2306,14 @@ transfer protocols.")
 (define-public opensmtpd
   (package
     (name "opensmtpd")
-    (version "6.6.2p1")
+    (version "6.6.3p1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.opensmtpd.org/archives/"
                            "opensmtpd-" version ".tar.gz"))
        (sha256
-        (base32 "16nz2n4s3djlasd6m6dqfwggf6igyfxzq5igny5i0qb8lnn13f33"))))
+        (base32 "1dqysjlyl0x3qzdzc9sjrla0063vpmlyq735lzf88p7wgzmw1xwy"))))
     (build-system gnu-build-system)
     (inputs
      `(("bdb" ,bdb)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index f63946c04f..aa5fad06aa 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
@@ -162,7 +162,7 @@ the traditional flat-text whatis databases.")
 (define-public man-pages
   (package
     (name "man-pages")
-    (version "5.04")
+    (version "5.05")
     (source
      (origin
        (method url-fetch)
@@ -172,7 +172,7 @@ the traditional flat-text whatis databases.")
               (string-append "mirror://kernel.org/linux/docs/man-pages/Archive/"
                              "man-pages-" version ".tar.xz")))
        (sha256
-        (base32 "1bx4ws24bjq6iyfyilg7aih5f0qrhy9l97ksrwcd4yxvjh8gn13x"))))
+        (base32 "0izb6shcczvg37cyd3kzxsfsrffqj1qw9nqhhq9mi4kd36qkbcfm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases (delete 'configure))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 0ef5b3f91e..c88a5ab8cf 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -74,6 +74,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages dbm)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
@@ -1491,7 +1492,7 @@ can solve two kinds of problems:
 (define-public octave-cli
   (package
     (name "octave-cli")
-    (version "5.1.0")
+    (version "5.2.0")
     (source
      (origin
       (method url-fetch)
@@ -1499,11 +1500,12 @@ can solve two kinds of problems:
                           version ".tar.lz"))
       (sha256
        (base32
-        "11wwxpy2q1bhxs2v41bqn05i2sb0905cj1xil6mg8l4k2kka4cq6"))))
+        "1848dq6nxzal8gwjrcp6xhi5gq96w89nss9d9rz75q408gb3mbl6"))))
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("arpack" ,arpack-ng)
+       ("bdb" ,bdb)
        ("curl" ,curl)
        ("fftw" ,fftw)
        ("fftwf" ,fftwf)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 4576741b44..044f4dae1d 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1816,7 +1816,7 @@ QMatrixClient project.")
     (synopsis "Graphical client for the Matrix instant messaging protocol")
     (description "Quaternion is a Qt5 desktop client for the Matrix instant
 messaging protocol.  It uses libqmatrixclient and is its reference client
-implementation.  Quaternion and libqmatriclient together form the
+implementation.  Quaternion and libqmatrixclient together form the
 QMatrixClient project.")
     (license (list license:gpl3+        ; all source code
                    license:lgpl3+))))   ; icons/breeze
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 1fb78c091f..2787ff0b00 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2019 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
@@ -21,7 +21,7 @@
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;; Copyright © 2019 raingloom <raingloom@protonmail.com>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
@@ -2213,7 +2213,7 @@ capabilities, custom envelopes, effects, etc.")
 (define-public yoshimi
   (package
     (name "yoshimi")
-    (version "1.6.1")
+    (version "1.7.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/yoshimi/"
@@ -2221,7 +2221,7 @@ capabilities, custom envelopes, effects, etc.")
                                   "/yoshimi-" version ".tar.bz2"))
               (sha256
                (base32
-                "1shnz429zgl0b4y5bpb61frk1747jwqfahq4hx44c972580zghzh"))))
+                "1pkqrrr51vlxh96vy0c0rf5ijjvymys4brsw9rv1bdp1bb8izw6c"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; there are no tests
@@ -2999,7 +2999,7 @@ using the beets FetchArt plugin.")
 module files.  It attempts to recreate the module replay and user experience of
 the popular DOS program Fasttracker II, with special playback modes available
 for improved Amiga ProTracker 2/3 compatibility.")
-    (home-page "http://milkytracker.titandemo.org/")
+    (home-page "https://milkytracker.titandemo.org/")
     ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
     (license (list license:bsd-3 license:gpl3+))))
 
@@ -3878,7 +3878,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
 (define-public musescore
   (package
     (name "musescore")
-    (version "3.4.1")
+    (version "3.4.2")
     (source
      (origin
        (method git-fetch)
@@ -3887,7 +3887,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16rx4x0czhwjg8vppcc7iw0cvii9q2l730cqhmhvip9r8wwamsvj"))
+        (base32 "14a9sg87nx7xca1qfbkplnpbx9pyg9k9vy87dq0g401ag6g6bi66"))
        (modules '((guix build utils)))
        (snippet
         ;; Un-bundle OpenSSL and remove unused libraries.
@@ -3927,6 +3927,7 @@ audio samples and various soft sythesizers.  It can receive input from a MIDI ke
        ("pulseaudio" ,pulseaudio)
        ("qtbase" ,qtbase)
        ("qtdeclarative" ,qtdeclarative)
+       ("qtquickcontrols2" ,qtquickcontrols2)
        ("qtscript" ,qtscript)
        ("qtsvg" ,qtsvg)
        ("qtxmlpatterns" ,qtxmlpatterns)))
@@ -5142,7 +5143,7 @@ and as an LV2 plugin.")
 (define-public zrythm
   (package
     (name "zrythm")
-    (version "0.7.345")
+    (version "0.7.474")
     (source
       (origin
         (method url-fetch)
@@ -5150,13 +5151,21 @@ and as an LV2 plugin.")
                             version ".tar.xz"))
         (sha256
           (base32
-            "1csiwq38a1ckx23lairfpl7qjkz71wsa7a9vsxl3k58f9ybibiil"))))
+            "0qq9v8y27zhamcb7nq7pl76874ws8x8cxhp5r685b8binvl9p0az"))))
    (build-system meson-build-system)
    (arguments
     `(#:glib-or-gtk? #t
       #:configure-flags
       `("-Denable_tests=true" "-Dmanpage=true"
-        "-Dinstall_dseg_font=false" "-Denable_ffmpeg=true")))
+        "-Dinstall_dseg_font=false" "-Denable_ffmpeg=true")
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'patch-xdg-open
+          (lambda _
+            (substitute* "src/utils/io.c"
+                         (("OPEN_DIR_CMD")
+                          (string-append "\"" (which "xdg-open") "\"")))
+            #t)))))
    (inputs
     `(("alsa-lib" ,alsa-lib)
       ("jack" ,jack-1)
diff --git a/gnu/packages/musl.scm b/gnu/packages/musl.scm
index 6a6344efb5..7e4e27d00d 100644
--- a/gnu/packages/musl.scm
+++ b/gnu/packages/musl.scm
@@ -44,7 +44,7 @@
     (synopsis "Small C standard library")
     (description "musl is a simple and lightweight C standard library.  It
 strives to be correct in the sense of standards-conformance and safety.")
-    (home-page "https://www.musl-libc.org")
+    (home-page "https://musl.libc.org")
     ;; Musl as a whole is released under the Expat license.  Parts of it are
     ;; derived from various third-party projects that are released under
     ;; non-copyleft licenses.  See the COPYRIGHT file for details.
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index 0aceef83ea..ff7abfad73 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -30,13 +30,13 @@
 (define-public nano
   (package
     (name "nano")
-    (version "4.7")
+    (version "4.8")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
       (sha256
-       (base32 "1x9nqy2kgaz6087p63i71gdjsqbdc9jjpx1ymlyclfakvsby3h2q"))))
+       (base32 "0qwf4ld0fl2bpnjh23z2pq7wcs6d14m2364360xmf7dbd0fgcj63"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ed339524c0..dbc40028ad 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -36,6 +36,8 @@
 ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
 ;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
 ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,6 +66,7 @@
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
@@ -2824,6 +2827,43 @@ easy-to-understand binary values.")
     (home-page "http://jodies.de/ipcalc")
     (license license:gpl2+)))
 
+(define-public tunctl
+  (package
+    (name "tunctl")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/tunctl/tunctl/" version "/"
+                           "tunctl-" version ".tar.gz"))
+       (sha256
+        (base32 "1zsgn7w6l2zh2q0j6qaw8wsx981qcr536qlz1lgb3b5zqr66qama"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)            ;there is no configure.ac file
+         (delete 'configure)            ;there is no configure script
+         (delete 'check)                ;there are no tests
+         (replace 'build
+           (lambda _
+             (setenv "CC" "gcc")
+             (invoke "make" "tunctl")))
+         ;; TODO: Requires docbook2x to generate man page from SGML.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "tunctl" bin))
+             #t)))))
+    (home-page "http://tunctl.sourceforge.net")
+    (synopsis  "Utility to set up and maintain TUN/TAP network interfaces")
+    (description "Tunctl is used to set up and maintain persistent TUN/TAP
+network interfaces, enabling user applications to simulate network traffic.
+Such interfaces are useful for VPN software, virtualization, emulation,
+simulation, and a number of other applications.")
+    (license license:gpl2)))
+
 (define-public vde2
   (package
     (name "vde2")
@@ -2853,3 +2893,46 @@ cables.")
                    (license:non-copyleft ; slirpvde
                     "file://COPYING.slirpvde"
                     "See COPYING.slirpvde in the distribution.")))))
+
+(define-public haproxy
+  (package
+    (name "haproxy")
+    (version "2.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.haproxy.org/download/"
+                                  (version-major+minor version)
+                                  "/src/haproxy-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0n8bw3d6gikr8c56ycrvksp1sl0b4yfzp19867cxkl3l0daqwrxv"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (let* ((out (assoc-ref %outputs "out")))
+         (list (string-append "PREFIX=" out)
+               (string-append "DOCDIR=" out "/share/" ,name)
+               "TARGET=linux-glibc"
+               "USE_LUA=1"
+               "USE_OPENSSL=1"
+               "USE_ZLIB=1"
+               "USE_PCRE_2=1"))
+       #:tests? #f  ; there are only regression tests, using varnishtest
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (inputs
+     `(("lua" ,lua)
+       ("openssl" ,openssl)
+       ("pcre2" ,pcre2)
+       ("zlib" ,zlib)))
+    (home-page "https://www.haproxy.org/")
+    (synopsis "Reliable, high performance TCP/HTTP load balancer")
+    (description "HAProxy is a free, very fast and reliable solution offering
+high availability, load balancing, and proxying for TCP and HTTP-based
+applications.  It is particularly suited for web sites crawling under very
+high loads while needing persistence or Layer7 processing.  Supporting tens of
+thousands of connections is clearly realistic with today's hardware.")
+    (license (list license:gpl2+
+                   license:lgpl2.1
+                   license:lgpl2.1+))))
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 753d2cc06a..033a55a3d4 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -117,6 +117,10 @@
              ;; This requires a DNS resolver.
              (delete-file "test/parallel/test-dns.js")
 
+             ;; FIXME: This test fails randomly:
+             ;; https://github.com/nodejs/node/issues/31213
+             (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
+
              ;; These tests have an expiry date: they depend on the validity of
              ;; TLS certificates that are bundled with the source.  We want this
              ;; package to be reproducible forever, so remove those.
diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm
index 50c99118c1..04b3cb0524 100644
--- a/gnu/packages/opencl.scm
+++ b/gnu/packages/opencl.scm
@@ -20,6 +20,7 @@
 (define-module (gnu packages opencl)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -35,6 +36,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
@@ -342,3 +344,92 @@ implementation, and as a portability layer.  Thus, if your desired target has
 an LLVM backend, it should be able to get OpenCL support easily by using
 pocl.")
     (license license:expat)))
+
+(define-public python-pytools
+  (package
+    (name "python-pytools")
+    (version "2020.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytools" version))
+       (sha256
+        (base32
+         "19h47pqfrq7ax7601i5g8icpb6b42h8zzwq0dqfdcjjqamwd2cn1"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-appdirs" ,python-appdirs)
+       ("python-decorator" ,python-decorator)
+       ("python-numpy" ,python-numpy)
+       ("python-six" ,python-six)
+       ("python-mpi4py" ,python-mpi4py)))
+    (home-page "https://pypi.org/project/pytools/")
+    (synopsis "Assorted tools for Python")
+    (description
+     "Pytools is a bag of things that are ``missing'' from the Python standard
+library:
+
+@itemize
+@item
+small helper functions such as @code{len_iterable}, @code{argmin},
+tuple generation, permutation generation, ASCII table pretty printing,
+GvR's @code{monkeypatch_xxx} hack, the elusive @code{flatten}, and much more.
+@item
+Michele Simionato's decorator module
+@item
+A time-series logging module, @code{pytools.log}.
+@item
+Batch job submission, @code{pytools.batchjob}.
+@item
+A lexer, @code{pytools.lex}.
+@end itemize\n")
+    (license license:expat)))
+
+(define-public python-pyopencl
+  (package
+    (name "python-pyopencl")
+    (version "2019.1.1")
+    (source
+     (origin
+       ;; The tarball on PyPI lacks test programs such as
+       ;; 'pygpu_language_opencl.cpp' so fetch it from Git.
+       ;; XXX: The server at git.tiker.net is unreliable.
+       (method git-fetch)
+       (uri (git-reference
+             (url "http://git.tiker.net/trees/pyopencl.git")
+             (commit (string-append "v" version))
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "12q0rs8yla571vcfpsh0mfrjbdiayv0hi8r1rq0f178m3i3qjz80"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases (modify-phases %standard-phases
+                  (add-before 'build 'set-home
+                    (lambda _
+                      ;; Some of the Python build scripts expect 'HOME' to be
+                      ;; set.
+                      (setenv "HOME" (getcwd))
+                      #t)))
+
+       ;; Tests in 'compyte/ndarray/setup_opencl.py' appear to rely on
+       ;; 'nvcc', which is not an option.
+       #:tests? #f))
+    (inputs
+     `(("opencl-headers" ,opencl-headers-1.2)   ;POCL only supports OpenCL 1.2
+       ("pybind11" ,pybind11)
+       ("ocl-icd" ,ocl-icd)))                     ;libOpenCL
+    (propagated-inputs
+     `(("python-appdirs" ,python-appdirs)
+       ("python-decorator" ,python-decorator)
+       ("python-numpy" ,python-numpy)
+       ("python-pytools" ,python-pytools)
+       ("python-six" ,python-six)
+       ("python-mako" ,python-mako)))
+    (home-page "http://mathema.tician.de/software/pyopencl")
+    (synopsis "Python wrapper for OpenCL")
+    (description
+     "PyOpenCL lets you access parallel computing devices such as GPUs from
+Python @i{via} OpenCL.")
+    (license license:expat)))
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 5bed372432..f1060bb66b 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2013, 2014, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
@@ -54,14 +54,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20191222")
+    (version "20200122")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "0xvw578440s9cc382n7z2l8npj30nwr6wwmkyxn2pj1pcszfjagy"))))
+       (base32 "070cv3b1ja8lmn2a5h1ry6b5y35jpm4z5r9yv9nb5kd5im11wvqi"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index da58c24680..a8c165e15d 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -497,17 +498,11 @@ any X11 window.")
                                 "sed" "tree" "which" "xclip"))))
                (wrap-program (string-append out "/bin/pass")
                  `("PATH" ":" prefix (,(string-join path ":"))))
-               #t)))
-         (add-after 'wrap-path 'install-shell-completions
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out      (assoc-ref outputs "out"))
-                    (bashcomp (string-append out "/etc/bash_completion.d")))
-               ;; TODO: install fish and zsh completions.
-               (mkdir-p bashcomp)
-               (copy-file "src/completion/pass.bash-completion"
-                          (string-append bashcomp "/pass"))
                #t))))
-       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)
+                          "WITH_ALLCOMP=yes"
+                          (string-append "BASHCOMPDIR="
+                                         %output "/etc/bash_completion.d"))
        ;; Parallel tests may cause a race condition leading to a
        ;; timeout in some circumstances.
        #:parallel-tests? #f
diff --git a/gnu/packages/patches/docker-adjust-tests-for-changes-in-go.patch b/gnu/packages/patches/docker-adjust-tests-for-changes-in-go.patch
deleted file mode 100644
index 82d92cd4de..0000000000
--- a/gnu/packages/patches/docker-adjust-tests-for-changes-in-go.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 4983ef7c1693ad6dfbe4e3809b12541241d7ff56 Mon Sep 17 00:00:00 2001
-From: Sebastiaan van Stijn <github@gone.nl>
-Date: Wed, 14 Aug 2019 02:51:08 +0200
-Subject: [PATCH] Adjust tests for changes in Go 1.12.8 / 1.11.13
-
-```
-00:38:11 === Failed
-00:38:11 === FAIL: opts TestParseDockerDaemonHost (0.00s)
-00:38:11     hosts_test.go:87: tcp tcp:a.b.c.d address expected error "Invalid bind address format: tcp:a.b.c.d" return, got "parse tcp://tcp:a.b.c.d: invalid port \":a.b.c.d\" after host" and addr
-00:38:11     hosts_test.go:87: tcp tcp:a.b.c.d/path address expected error "Invalid bind address format: tcp:a.b.c.d/path" return, got "parse tcp://tcp:a.b.c.d/path: invalid port \":a.b.c.d\" after host" and addr
-00:38:11
-00:38:11 === FAIL: opts TestParseTCP (0.00s)
-00:38:11     hosts_test.go:129: tcp tcp:a.b.c.d address expected error Invalid bind address format: tcp:a.b.c.d return, got parse tcp://tcp:a.b.c.d: invalid port ":a.b.c.d" after host and addr
-00:38:11     hosts_test.go:129: tcp tcp:a.b.c.d/path address expected error Invalid bind address format: tcp:a.b.c.d/path return, got parse tcp://tcp:a.b.c.d/path: invalid port ":a.b.c.d" after host and addr
-```
-
-Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
-Upstream-commit: 683766613a8c1dca8f95b19ddb7e083bb3aef266
-Component: engine
----
- opts/hosts_test.go | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/opts/hosts_test.go b/opts/hosts_test.go
-index 8c54ec0f4b..7a0a943adf 100644
---- a/opts/hosts_test.go
-+++ b/opts/hosts_test.go
-@@ -53,8 +53,8 @@ func TestParseHost(t *testing.T) {
- func TestParseDockerDaemonHost(t *testing.T) {
- 	invalids := map[string]string{
- 
--		"tcp:a.b.c.d":                   "Invalid bind address format: tcp:a.b.c.d",
--		"tcp:a.b.c.d/path":              "Invalid bind address format: tcp:a.b.c.d/path",
-+		"tcp:a.b.c.d":                   "",
-+		"tcp:a.b.c.d/path":              "",
- 		"udp://127.0.0.1":               "Invalid bind address format: udp://127.0.0.1",
- 		"udp://127.0.0.1:2375":          "Invalid bind address format: udp://127.0.0.1:2375",
- 		"tcp://unix:///run/docker.sock": "Invalid proto, expected tcp: unix:///run/docker.sock",
-@@ -83,7 +83,7 @@ func TestParseDockerDaemonHost(t *testing.T) {
- 		"localhost:5555/path":         "tcp://localhost:5555/path",
- 	}
- 	for invalidAddr, expectedError := range invalids {
--		if addr, err := parseDaemonHost(invalidAddr); err == nil || err.Error() != expectedError {
-+		if addr, err := parseDaemonHost(invalidAddr); err == nil || expectedError != "" && err.Error() != expectedError {
- 			t.Errorf("tcp %v address expected error %q return, got %q and addr %v", invalidAddr, expectedError, err, addr)
- 		}
- 	}
-@@ -99,8 +99,8 @@ func TestParseTCP(t *testing.T) {
- 		defaultHTTPHost = "tcp://127.0.0.1:2376"
- 	)
- 	invalids := map[string]string{
--		"tcp:a.b.c.d":          "Invalid bind address format: tcp:a.b.c.d",
--		"tcp:a.b.c.d/path":     "Invalid bind address format: tcp:a.b.c.d/path",
-+		"tcp:a.b.c.d":          "",
-+		"tcp:a.b.c.d/path":     "",
- 		"udp://127.0.0.1":      "Invalid proto, expected tcp: udp://127.0.0.1",
- 		"udp://127.0.0.1:2375": "Invalid proto, expected tcp: udp://127.0.0.1:2375",
- 	}
-@@ -125,7 +125,7 @@ func TestParseTCP(t *testing.T) {
- 		"localhost:5555/path":         "tcp://localhost:5555/path",
- 	}
- 	for invalidAddr, expectedError := range invalids {
--		if addr, err := ParseTCPAddr(invalidAddr, defaultHTTPHost); err == nil || err.Error() != expectedError {
-+		if addr, err := ParseTCPAddr(invalidAddr, defaultHTTPHost); err == nil || expectedError != "" && err.Error() != expectedError {
- 			t.Errorf("tcp %v address expected error %v return, got %s and addr %v", invalidAddr, expectedError, err, addr)
- 		}
- 	}
diff --git a/gnu/packages/patches/docker-engine-test-noinstall.patch b/gnu/packages/patches/docker-engine-test-noinstall.patch
deleted file mode 100644
index 85d56a3465..0000000000
--- a/gnu/packages/patches/docker-engine-test-noinstall.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Last-Update: 2018-06-18
-Forwarded: not-needed
-Author: Dmitry Smirnov <onlyjob@debian.org>
-Description: prevents test-time installation that causes FTBFS.
-~~~~
- go test net: open /usr/lib/go-1.10/pkg/linux_amd64/net.a: permission denied
-~~~~
-
---- a/hack/test/unit
-+++ b/hack/test/unit
-@@ -18,12 +18,8 @@
- 
- exclude_paths="/vendor/|/integration"
- pkg_list=$(go list $TESTDIRS | grep -vE "($exclude_paths)")
- 
--# install test dependencies once before running tests for each package. This
--# significantly reduces the runtime.
--go test -i "${BUILDFLAGS[@]}" $pkg_list
--
- for pkg in $pkg_list; do
-     go test "${BUILDFLAGS[@]}" \
-         -cover \
-         -coverprofile=profile.out \
diff --git a/gnu/packages/patches/docker-use-fewer-modprobes.patch b/gnu/packages/patches/docker-use-fewer-modprobes.patch
deleted file mode 100644
index 4e4a45b6ce..0000000000
--- a/gnu/packages/patches/docker-use-fewer-modprobes.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-This patch makes docker find out whether a filesystem type is supported
-by trying to mount a filesystem of that type rather than invoking "modprobe".
-
-See <https://github.com/moby/moby/pull/38930>.
-
---- docker-18.09.0-checkout/daemon/graphdriver/overlay/overlay.go.orig	1970-01-01 01:00:00.000000000 +0100
-+++ docker-18.09.0-checkout/daemon/graphdriver/overlay/overlay.go	2019-03-19 09:16:03.487087490 +0100
-@@ -8,7 +8,6 @@
- 	"io"
- 	"io/ioutil"
- 	"os"
--	"os/exec"
- 	"path"
- 	"path/filepath"
- 	"strconv"
-@@ -201,9 +200,16 @@
- }
- 
- func supportsOverlay() error {
--	// We can try to modprobe overlay first before looking at
--	// proc/filesystems for when overlay is supported
--	exec.Command("modprobe", "overlay").Run()
-+	// Access overlay filesystem so that Linux loads it (if possible).
-+	mountTarget, err := ioutil.TempDir("", "supportsOverlay")
-+	if err != nil {
-+		logrus.WithField("storage-driver", "overlay2").Error("Could not create temporary directory, so assuming that 'overlay' is not supported.")
-+		return graphdriver.ErrNotSupported
-+	} else {
-+		/* The mounting will fail--after the module has been loaded.*/
-+		defer os.RemoveAll(mountTarget)
-+		unix.Mount("overlay", mountTarget, "overlay", 0, "")
-+	}
- 
- 	f, err := os.Open("/proc/filesystems")
- 	if err != nil {
---- docker-18.09.0-checkout/daemon/graphdriver/overlay2/overlay.go.orig	2019-03-18 23:42:23.728525231 +0100
-+++ docker-18.09.0-checkout/daemon/graphdriver/overlay2/overlay.go	2019-03-19 08:54:31.411906113 +0100
-@@ -10,7 +10,6 @@
- 	"io"
- 	"io/ioutil"
- 	"os"
--	"os/exec"
- 	"path"
- 	"path/filepath"
- 	"strconv"
-@@ -261,9 +260,16 @@
- }
- 
- func supportsOverlay() error {
--	// We can try to modprobe overlay first before looking at
--	// proc/filesystems for when overlay is supported
--	exec.Command("modprobe", "overlay").Run()
-+	// Access overlay filesystem so that Linux loads it (if possible).
-+	mountTarget, err := ioutil.TempDir("", "supportsOverlay2")
-+	if err != nil {
-+		logrus.WithField("storage-driver", "overlay2").Error("Could not create temporary directory, so assuming that 'overlay' is not supported.")
-+		return graphdriver.ErrNotSupported
-+	} else {
-+		/* The mounting will fail--after the module has been loaded.*/
-+		defer os.RemoveAll(mountTarget)
-+		unix.Mount("overlay", mountTarget, "overlay", 0, "")
-+	}
- 
- 	f, err := os.Open("/proc/filesystems")
- 	if err != nil {
---- docker-18.09.0-checkout/daemon/graphdriver/devmapper/deviceset.go.orig	2019-03-19 09:19:16.592844887 +0100
-+++ docker-18.09.0-checkout/daemon/graphdriver/devmapper/deviceset.go	2019-03-19 09:21:18.019361761 +0100
-@@ -540,8 +539,14 @@
- 		return err // error text is descriptive enough
- 	}
- 
--	// Check if kernel supports xfs filesystem or not.
--	exec.Command("modprobe", "xfs").Run()
-+	mountTarget, err := ioutil.TempDir("", "supportsXFS")
-+	if err != nil {
-+		return errors.Wrapf(err, "error checking for xfs support")
-+	} else {
-+		/* The mounting will fail--after the module has been loaded.*/
-+		defer os.RemoveAll(mountTarget)
-+		unix.Mount("none", mountTarget, "xfs", 0, "")
-+	}
- 
- 	f, err := os.Open("/proc/filesystems")
- 	if err != nil {
---- docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/iptables/iptables.go.orig	2019-03-19 09:47:19.430111170 +0100
-+++ docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/iptables/iptables.go	2019-03-19 10:38:01.445136177 +0100
-@@ -72,11 +71,12 @@
- }
- 
- func probe() {
--	if out, err := exec.Command("modprobe", "-va", "nf_nat").CombinedOutput(); err != nil {
--		logrus.Warnf("Running modprobe nf_nat failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
-+	path, err := exec.LookPath("iptables")
-+	if err != nil {
-+		return
- 	}
--	if out, err := exec.Command("modprobe", "-va", "xt_conntrack").CombinedOutput(); err != nil {
--		logrus.Warnf("Running modprobe xt_conntrack failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
-+	if out, err := exec.Command(path, "--wait", "-t", "nat", "-L", "-n").CombinedOutput(); err != nil {
-+		logrus.Warnf("Running iptables --wait -t nat -L -n failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
- 	}
- }
- 
---- docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/ns/init_linux.go.orig	2019-03-19 11:23:20.738316699 +0100
-+++ docker-18.09.0-checkout/vendor/github.com/docker/libnetwork/ns/init_linux.go	2019-03-19 11:27:57.149753073 +0100
-@@ -76,12 +76,8 @@ func NlHandle() *netlink.Handle {
- func getSupportedNlFamilies() []int {
- 	fams := []int{syscall.NETLINK_ROUTE}
- 	// NETLINK_XFRM test
--	if err := loadXfrmModules(); err != nil {
--		if checkXfrmSocket() != nil {
--			logrus.Warnf("Could not load necessary modules for IPSEC rules: %v", err)
--		} else {
--			fams = append(fams, syscall.NETLINK_XFRM)
--		}
-+	if err := checkXfrmSocket(); err != nil {
-+		logrus.Warnf("Could not load necessary modules for IPSEC rules: %v", err)
- 	} else {
- 		fams = append(fams, syscall.NETLINK_XFRM)
- 	}
-@@ -99,16 +95,6 @@ func getSupportedNlFamilies() []int {
- 	return fams
- }
- 
--func loadXfrmModules() error {
--	if out, err := exec.Command("modprobe", "-va", "xfrm_user").CombinedOutput(); err != nil {
--		return fmt.Errorf("Running modprobe xfrm_user failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
--	}
--	if out, err := exec.Command("modprobe", "-va", "xfrm_algo").CombinedOutput(); err != nil {
--		return fmt.Errorf("Running modprobe xfrm_algo failed with message: `%s`, error: %v", strings.TrimSpace(string(out)), err)
--	}
--	return nil
--}
--
- // API check on required xfrm modules (xfrm_user, xfrm_algo)
- func checkXfrmSocket() error {
- 	fd, err := syscall.Socket(syscall.AF_NETLINK, syscall.SOCK_RAW, syscall.NETLINK_XFRM)
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index 172b1dcadd..beaddf9437 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -25,7 +25,7 @@ index 8be2362..48716f2 100755
 -wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 -gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 -gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
--echo -n a00a7712d0f919162ce8181a9a3fc3e9ef37adf1caff0945a863b4c0c1d9f360 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+-echo -n 52e784f98a37624e8b207f1b23289c2c88f66dd923798cae891a586a6d94a6d1 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 -
 -echo Extracting Firefox tarball
 -tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -37,7 +37,7 @@ index 8be2362..48716f2 100755
 +# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
 +# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353
 +# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
-+# echo -n a00a7712d0f919162ce8181a9a3fc3e9ef37adf1caff0945a863b4c0c1d9f360 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
++# echo -n 52e784f98a37624e8b207f1b23289c2c88f66dd923798cae891a586a6d94a6d1 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
 +# 
 +# echo Extracting Firefox tarball
 +# tar -xf firefox-${FFVERSION}esr.source.tar.xz
diff --git a/gnu/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch b/gnu/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch
deleted file mode 100644
index 53e681ea31..0000000000
--- a/gnu/packages/patches/isc-dhcp-4.4.1-fixes-for-newer-bind.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-These fixes are needed to adapt isc-dhcp-4.4.1 to build
-successfully after its bundled copy of bind has been updated.
-
-It is derived from the following upstream commits:
-
-commit 8194daabfd590f17825f0c61e9534bee5c99cc86
-Author: Thomas Markwalder <tmark@isc.org>
-Date:   Fri Sep 14 13:41:14 2018 -0400
-
-  [master] Added includes of new BIND9 compatibility headers, updated util/bind.sh
-  
-      Merges in rt48072.
-
-commit cc35f84943df44dac2499f3e16e8aaba7d54191d
-Author: Thomas Markwalder <tmark@isc.org>
-Date:   Tue Mar 19 08:36:23 2019 -0400
-
-  [master] Avoid Bind9 python dependency
-  
-      merges [#3,!1] Avoid Bind9 python dependency
-
---- a/bind/Makefile.in
-+++ b/bind/Makefile.in
-@@ -23,7 +23,7 @@ exec_prefix = @exec_prefix@
- 
- bindconfig = --without-openssl --without-libxml2 --without-libjson \
- 	--without-gssapi --disable-threads --without-lmdb \
--	--includedir=@includedir@ --libdir=@libdir@ \
-+	--includedir=@includedir@ --libdir=@libdir@  --without-python\
- 	@BINDLT@ @BINDIOMUX@ @BINDCONFIG@ --enable-full-report
- 
- @BIND_ATF_FALSE@cleandirs = ./lib ./include
-diff --git a/includes/omapip/isclib.h b/includes/omapip/isclib.h
-index 75a87ff6..538b927f 100644
---- a/includes/omapip/isclib.h
-+++ b/includes/omapip/isclib.h
-@@ -48,6 +48,9 @@
- #include <string.h>
- #include <netdb.h>
- 
-+#include <isc/boolean.h>
-+#include <isc/int.h>
-+
- #include <isc/buffer.h>
- #include <isc/lex.h>
- #include <isc/lib.h>
-diff --git a/includes/omapip/result.h b/includes/omapip/result.h
-index 91243e1b..860298f6 100644
---- a/includes/omapip/result.h
-+++ b/includes/omapip/result.h
-@@ -26,6 +26,7 @@
- #ifndef DHCP_RESULT_H
- #define DHCP_RESULT_H 1
- 
-+#include <isc/boolean.h>
- #include <isc/lang.h>
- #include <isc/resultclass.h>
- #include <isc/types.h>
-diff --git a/server/dhcpv6.c b/server/dhcpv6.c
-index a7110f98..cde4f617 100644
---- a/server/dhcpv6.c
-+++ b/server/dhcpv6.c
-@@ -1034,7 +1034,8 @@ void check_pool6_threshold(struct reply_state *reply,
- 				  shared_name,
- 				  inet_ntop(AF_INET6, &lease->addr,
- 					    tmp_addr, sizeof(tmp_addr)),
--				  used, count);
-+				  (long long unsigned)(used),
-+				  (long long unsigned)(count));
- 		}
- 		return;
- 	}
-@@ -1066,7 +1067,8 @@ void check_pool6_threshold(struct reply_state *reply,
- 		  "address: %s; high threshold %d%% %llu/%llu.",
- 		  shared_name,
- 		  inet_ntop(AF_INET6, &lease->addr, tmp_addr, sizeof(tmp_addr)),
--		  poolhigh, used, count);
-+		  poolhigh, (long long unsigned)(used),
-+		  (long long unsigned)(count));
- 
- 	/* handle the low threshold now, if we don't
- 	 * have one we default to 0. */
-@@ -1436,12 +1438,15 @@ pick_v6_address(struct reply_state *reply)
- 		log_debug("Unable to pick client address: "
- 			  "no addresses available  - shared network %s: "
- 			  " 2^64-1 < total, %llu active,  %llu abandoned",
--			  shared_name, active - abandoned, abandoned);
-+			  shared_name, (long long unsigned)(active - abandoned),
-+			  (long long unsigned)(abandoned));
- 	} else {
- 		log_debug("Unable to pick client address: "
- 			  "no addresses available  - shared network %s: "
- 			  "%llu total, %llu active,  %llu abandoned",
--			  shared_name, total, active - abandoned, abandoned);
-+			  shared_name, (long long unsigned)(total),
-+			  (long long unsigned)(active - abandoned),
-+		          (long long unsigned)(abandoned));
- 	}
- 
- 	return ISC_R_NORESOURCES;
diff --git a/gnu/packages/patches/libreoffice-glm.patch b/gnu/packages/patches/libreoffice-glm.patch
deleted file mode 100644
index 9e76cf1389..0000000000
--- a/gnu/packages/patches/libreoffice-glm.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Fix build with GLM 0.9.9.
-
-This patch is an amalgamation of these upstream commits:
-
-https://github.com/LibreOffice/core/commit/953c4add8fd76d88f49a81ae4c21a1fdcc007e57
-https://github.com/LibreOffice/core/commit/5f1bf6598b5725ad1e50ae9f7ec7524cc8a834fa
-
-diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk
-index 28bc87b89057..69d4c0552636 100644
---- a/chart2/Library_chartcore.mk
-+++ b/chart2/Library_chartcore.mk
-@@ -23,6 +23,12 @@ $(eval $(call gb_Library_add_defs,chartcore,\
-     -DOOO_DLLIMPLEMENTATION_CHARTVIEW \
- ))
- 
-+ifeq ($(SYSTEM_GLM),TRUE)
-+$(eval $(call gb_Library_add_defs,chartcore,\
-+        -DGLM_ENABLE_EXPERIMENTAL \
-+))
-+endif
-+
- $(eval $(call gb_Library_set_precompiled_header,chartcore,$(SRCDIR)/chart2/inc/pch/precompiled_chartcore))
- 
- $(eval $(call gb_Library_use_externals,chartcore,\
-diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
-index c1f3cc5324e7..0b684c6185a9 100644
---- a/vcl/Library_vcl.mk
-+++ b/vcl/Library_vcl.mk
-@@ -49,6 +49,12 @@ $(eval $(call gb_Library_add_defs,vcl,\
- 	-DENABLE_MERGELIBS=$(if $(MERGELIBS),1,0) \
- ))
- 
-+ifeq ($(SYSTEM_GLM),TRUE)
-+$(eval $(call gb_Library_add_defs,vcl,\
-+        -DGLM_ENABLE_EXPERIMENTAL \
-+))
-+endif
-+
- $(eval $(call gb_Library_use_sdk_api,vcl))
- 
- $(eval $(call gb_Library_use_custom_headers,vcl,\
-diff --git a/vcl/Executable_icontest.mk b/vcl/Executable_icontest.mk
-index ce163303f8a4..8c917b71cd0e 100644
---- a/vcl/Executable_icontest.mk
-+++ b/vcl/Executable_icontest.mk
-@@ -19,6 +19,12 @@ $(eval $(call gb_Executable_use_externals,icontest,\
- ))
- endif
- 
-+ifeq ($(SYSTEM_GLM),TRUE)
-+$(eval $(call gb_Executable_add_defs,icontest,\
-+    -DGLM_ENABLE_EXPERIMENTAL \
-+))
-+endif
-+
- $(eval $(call gb_Executable_use_api,icontest,\
-     offapi \
-     udkapi \
diff --git a/gnu/packages/patches/libreoffice-icu.patch b/gnu/packages/patches/libreoffice-icu.patch
deleted file mode 100644
index 2985d564aa..0000000000
--- a/gnu/packages/patches/libreoffice-icu.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-This patch fixes the build of Libreoffice 6.0.5 with icu 61.1.
-It was downloaded from https://bugs.gentoo.org/651702.
-
---- a/forms/source/xforms/datatypes.hxx	
-+++ a/forms/source/xforms/datatypes.hxx	
-@@ -36,6 +36,8 @@ 
- 
- #include <memory>
- 
-+using icu::RegexMatcher;
-+
- 
- namespace xforms
- {
---- a/i18npool/inc/collator_unicode.hxx	
-+++ a/i18npool/inc/collator_unicode.hxx	
-@@ -26,6 +26,8 @@ 
- 
- #include <unicode/tblcoll.h>
- 
-+using icu::RuleBasedCollator;
-+
- //      ----------------------------------------------------
- //      class Collator_Unicode
- //      ----------------------------------------------------
---- a/i18npool/source/breakiterator/breakiterator_unicode.cxx	
-+++ a/i18npool/source/breakiterator/breakiterator_unicode.cxx	
-@@ -30,6 +30,9 @@ 
- #include <rtl/ustring.hxx>
- #include <string.h>
- 
-+using icu::BreakIterator;
-+using icu::RuleBasedBreakIterator;
-+
- U_CDECL_BEGIN
- extern const char OpenOffice_dat[];
- U_CDECL_END
---- a/i18npool/source/collator/collator_unicode.cxx	
-+++ a/i18npool/source/collator/collator_unicode.cxx	
-@@ -29,6 +29,8 @@ 
- #include <com/sun/star/i18n/CollatorOptions.hpp>
- #include <cppuhelper/supportsservice.hxx>
- 
-+using icu::Collator;
-+
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::i18n;
- using namespace ::com::sun::star::lang;
---- a/i18npool/source/collator/gencoll_rule.cxx	
-+++ a/i18npool/source/collator/gencoll_rule.cxx	
-@@ -31,6 +31,8 @@ 
- 
- #include <unicode/tblcoll.h>
- 
-+using icu::RuleBasedCollator;
-+
- /* Main Procedure */
- 
- void data_write(char* file, char* name, sal_uInt8 *data, sal_Int32 len)
---- a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx	
-+++ a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx	
-@@ -29,6 +29,8 @@ 
- #include <unicode/normlzr.h>
- #include <memory>
- 
-+using icu::NumberFormat;
-+
- using namespace ::com::sun::star::i18n;
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star;
---- a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx	
-+++ a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx	
-@@ -12,6 +12,8 @@ 
- #include <unicode/translit.h>
- #include <unicode/uchar.h>
- 
-+using icu::UnicodeString;
-+
- namespace i18npool {
- 
- ignoreDiacritics_CTL::ignoreDiacritics_CTL()
---- a/i18nutil/source/utility/unicode.cxx	
-+++ a/i18nutil/source/utility/unicode.cxx	
-@@ -34,6 +34,9 @@ 
- // which (obviously) breaks UnicodeType::CURRENCY_SYMBOL
- #undef CURRENCY_SYMBOL
- 
-+using icu::NumberFormat;
-+using icu::UnicodeString;
-+
- using namespace ::com::sun::star::i18n;
- 
- template<class L, typename T>
---- a/lotuswordpro/source/filter/localtime.cxx	
-+++ a/lotuswordpro/source/filter/localtime.cxx	
-@@ -57,6 +57,8 @@ 
- #include <limits.h>
- #include <unicode/timezone.h>
- 
-+using icu::TimeZone;
-+
- const long DAY_SEC =24 * 60 * 60;
- const long YEAR_SEC = 365 * DAY_SEC;
- const long FOURYEAR_SEC = 4 * YEAR_SEC + DAY_SEC;
---- a/opencl/source/openclconfig.cxx	
-+++ a/opencl/source/openclconfig.cxx	
-@@ -17,6 +17,8 @@ 
- #include <sal/log.hxx>
- #include <sal/types.h>
- 
-+using icu::RegexMatcher;
-+
- OpenCLConfig::OpenCLConfig() :
-     mbUseOpenCL(true)
- {
---- a/vcl/inc/scrptrun.h	
-+++ a/vcl/inc/scrptrun.h	
-@@ -45,6 +45,8 @@ 
- #include <unicode/uscript.h>
- #include <vector>
- 
-+using icu::UObject;
-+
- namespace vcl {
- 
- struct ParenStackEntry
diff --git a/gnu/packages/patches/lvm2-static-link.patch b/gnu/packages/patches/lvm2-static-link.patch
index eb7849a679..2ade0a1aaa 100644
--- a/gnu/packages/patches/lvm2-static-link.patch
+++ b/gnu/packages/patches/lvm2-static-link.patch
@@ -3,23 +3,34 @@ and libm via libdevmapper.a.
 
 --- LVM2.2.02.166/tools/Makefile.in	2016-11-22 21:31:15.521045149 +0100
 +++ LVM2.2.02.166/tools/Makefile.in	2016-11-22 21:31:24.085082767 +0100
-@@ -148,7 +148,7 @@ endif
- 
- lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a  $(interfacebuilddir)/libdevmapper.a
- 	$(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
--	      $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
-+	      $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) $(PTHREAD_LIBS) $(M_LIBS)
+@@ -137,7 +137,7 @@
+ lvm.static: $(OBJECTS) lvm-static.o $(LVMINTERNAL_LIBS)
+ 	@echo "    [CC] $@"
+ 	$(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ $+ \
+-	      $(DMEVENT_LIBS) $(STATIC_LIBS) $(LVMLIBS)
++	      $(DMEVENT_LIBS) $(STATIC_LIBS) $(LVMLIBS) $(PTHREAD_LIBS)
  
  liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
- 	cat $(top_builddir)/lib/liblvm-internal.a > $@
+ 	@echo "    [AR] $@"
 --- a/make.tmpl.in     2018-07-31 22:00:39.969983104 +0200
 +++ b/make.tmpl.in     2018-07-31 22:00:58.467613682 +0200
-@@ -53,7 +53,7 @@
+@@ -63,7 +63,7 @@
  
- LIBS = @LIBS@
+ LIBS += @LIBS@ $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(RT_LIBS) $(M_LIBS)
  # Extra libraries always linked with static binaries
 -STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS)
 +STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(M_LIBS)
  DEFS += @DEFS@
  # FIXME set this only where it's needed, not globally?
  CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
+--- a/libdm/make.tmpl.in	2018-12-18 15:22:34.000000000 +0100
++++ b/libdm/make.tmpl.in	2019-01-29 21:45:33.637345799 +0100
+@@ -57,7 +57,7 @@
+ LIBS = @LIBS@
+ LIBS += $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(RT_LIBS) -lm
+ # Extra libraries always linked with static binaries
+-STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS)
++STATIC_LIBS = $(SELINUX_LIBS) $(UDEV_LIBS) $(BLKID_LIBS) $(PTHREAD_LIBS) $(M_LIBS)
+ DEFS += @DEFS@
+ # FIXME set this only where it's needed, not globally?
+ CFLAGS ?= @COPTIMISE_FLAG@ @CFLAGS@
diff --git a/gnu/packages/patches/qrcodegen-cpp-make-install.patch b/gnu/packages/patches/qrcodegen-cpp-make-install.patch
new file mode 100644
index 0000000000..4da619d3c8
--- /dev/null
+++ b/gnu/packages/patches/qrcodegen-cpp-make-install.patch
@@ -0,0 +1,448 @@
+Make the library installable. Patch copied from pull request:
+
+https://github.com/nayuki/QR-Code-generator/pull/72
+
+From 1625fc1665e1f83eb73c0f5670dcfda96dc0b3e4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 3 Dec 2019 11:57:24 +0100
+Subject: [PATCH 1/7] Do not append to C/XX/FLAGS but just set them if not
+ defined already
+
+---
+ c/Makefile   | 2 +-
+ cpp/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/c/Makefile b/c/Makefile
+index fd0c367..b27449c 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -29,7 +29,7 @@
+ # - CFLAGS: Any extra user-specified compiler flags (can be blank).
+ 
+ # Recommended compiler flags:
+-CFLAGS += -std=c99 -O
++CFLAGS ?= -std=c99 -O
+ 
+ # Extra flags for diagnostics:
+ # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+diff --git a/cpp/Makefile b/cpp/Makefile
+index f83c512..666f976 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -29,7 +29,7 @@
+ # - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
+ 
+ # Recommended compiler flags:
+-CXXFLAGS += -std=c++11 -O
++CXXFLAGS ?= -std=c++11 -O
+ 
+ # Extra flags for diagnostics:
+ # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+
+From 2e496a0f59d5c6782c1e3e2a3ca36d0272b384f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 3 Dec 2019 11:59:59 +0100
+Subject: [PATCH 2/7] Make use of -fPIC parameter when building'
+
+---
+ c/Makefile   | 2 +-
+ cpp/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/c/Makefile b/c/Makefile
+index b27449c..bf79462 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -77,7 +77,7 @@ $(LIBFILE): $(LIBOBJ)
+ 
+ # Object files
+ %.o: %.c .deps/timestamp
+-	$(CC) $(CFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
++	$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
+ 
+ # Have a place to store header dependencies automatically generated by compiler
+ .deps/timestamp:
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 666f976..f37cf66 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -73,7 +73,7 @@ $(LIBFILE): $(LIBOBJ)
+ 
+ # Object files
+ %.o: %.cpp .deps/timestamp
+-	$(CXX) $(CXXFLAGS) -c -o $@ -MMD -MF .deps/$*.d $<
++	$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
+ 
+ # Have a place to store header dependencies automatically generated by compiler
+ .deps/timestamp:
+
+From 29489faaa5a3b014c5c2d95ca34033df470de73c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 3 Dec 2019 12:07:19 +0100
+Subject: [PATCH 3/7] Generate both shared and static libraries
+
+---
+ c/Makefile   | 14 ++++++++++----
+ cpp/Makefile | 14 ++++++++++----
+ 2 files changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/c/Makefile b/c/Makefile
+index bf79462..38eda2d 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -51,16 +51,19 @@ CFLAGS ?= -std=c99 -O
+ # ---- Targets to build ----
+ 
+ LIB = qrcodegen
+-LIBFILE = lib$(LIB).a
++ARFILE = lib$(LIB).a
++LIBFILE = lib$(LIB).so
++# Bump the soname number when the ABI changes and gets incompatible
++SO_NAME = $(LIBFILE).1
+ LIBOBJ = qrcodegen.o
+ MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
+ 
+ # Build all binaries
+-all: $(LIBFILE) $(MAINS)
++all: $(LIBFILE) $(ARFILE) $(MAINS)
+ 
+ # Delete build output
+ clean:
+-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
++	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
+ 	rm -rf .deps
+ 
+ # Executable files
+@@ -72,9 +75,12 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
+ 	$(CC) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^
+ 
+ # The library
+-$(LIBFILE): $(LIBOBJ)
++$(ARFILE): $(LIBOBJ)
+ 	$(AR) -crs $@ -- $^
+ 
++$(LIBFILE): $(LIBOBJ)
++	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
++
+ # Object files
+ %.o: %.c .deps/timestamp
+ 	$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
+diff --git a/cpp/Makefile b/cpp/Makefile
+index f37cf66..606cdad 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -51,16 +51,19 @@ CXXFLAGS ?= -std=c++11 -O
+ # ---- Targets to build ----
+ 
+ LIB = qrcodegen
+-LIBFILE = lib$(LIB).a
++ARFILE = lib$(LIB).a
++LIBFILE = lib$(LIB).so
++# Bump the soname number when the ABI changes and gets incompatible
++SO_NAME = $(LIBFILE).1
+ LIBOBJ = QrCode.o
+ MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
+ 
+ # Build all binaries
+-all: $(LIBFILE) $(MAINS)
++all: $(LIBFILE) $(ARFILE) $(MAINS)
+ 
+ # Delete build output
+ clean:
+-	rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
++	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
+ 	rm -rf .deps
+ 
+ # Executable files
+@@ -68,9 +71,12 @@ clean:
+ 	$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
+ 
+ # The library
+-$(LIBFILE): $(LIBOBJ)
++$(ARFILE): $(LIBOBJ)
+ 	$(AR) -crs $@ -- $^
+ 
++$(LIBFILE): $(LIBOBJ)
++	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
++
+ # Object files
+ %.o: %.cpp .deps/timestamp
+ 	$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<
+
+From 064f38d6a8dc0a457728a47ee4ca1e927e46d5ec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 3 Dec 2019 12:45:34 +0100
+Subject: [PATCH 4/7] Create install targets for C and CPP
+
+---
+ c/Makefile   | 26 ++++++++++++++++++++++++++
+ cpp/Makefile | 27 +++++++++++++++++++++++++++
+ 2 files changed, 53 insertions(+)
+
+diff --git a/c/Makefile b/c/Makefile
+index 38eda2d..7521944 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -34,6 +34,8 @@ CFLAGS ?= -std=c99 -O
+ # Extra flags for diagnostics:
+ # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+ 
++# Version information
++VERSION = 1.5.0
+ 
+ # ---- Controlling make ----
+ 
+@@ -55,9 +57,15 @@ ARFILE = lib$(LIB).a
+ LIBFILE = lib$(LIB).so
+ # Bump the soname number when the ABI changes and gets incompatible
+ SO_NAME = $(LIBFILE).1
++REAL_NAME = $(LIBFILE).$(VERSION)
++HEADERS = qrcodegen.h
+ LIBOBJ = qrcodegen.o
+ MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
+ 
++# define paths to install
++INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
++LIBDIR ?= $(DESTDIR)/usr/lib
++
+ # Build all binaries
+ all: $(LIBFILE) $(ARFILE) $(MAINS)
+ 
+@@ -66,6 +74,24 @@ clean:
+ 	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
+ 	rm -rf .deps
+ 
++install-shared: $(LIBFILE)
++	install -d $(LIBDIR) || true
++	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
++	rm -f $(LIBDIR)/$(SO_NAME)
++	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
++	rm -f $(LIBDIR)/$(LIBFILE)
++	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
++
++install-static: $(ARFILE)
++	install -d $(LIBDIR) || true
++	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
++
++install-header: $(HEADERS)
++	install -d $(INCLUDEDIR) || true
++	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
++
++install: install-shared install-static install-header
++
+ # Executable files
+ %: %.o $(LIBFILE)
+ 	$(CC) $(CFLAGS) -o $@ $< -L . -l $(LIB)
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 606cdad..3271bd8 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -34,6 +34,8 @@ CXXFLAGS ?= -std=c++11 -O
+ # Extra flags for diagnostics:
+ # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+ 
++# Version information
++VERSION = 1.5.0
+ 
+ # ---- Controlling make ----
+ 
+@@ -55,9 +57,16 @@ ARFILE = lib$(LIB).a
+ LIBFILE = lib$(LIB).so
+ # Bump the soname number when the ABI changes and gets incompatible
+ SO_NAME = $(LIBFILE).1
++REAL_NAME = $(LIBFILE).$(VERSION)
++HEADERS = QrCode.hpp
+ LIBOBJ = QrCode.o
+ MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
+ 
++# define paths to install
++INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
++LIBDIR ?= $(DESTDIR)/usr/lib
++
++
+ # Build all binaries
+ all: $(LIBFILE) $(ARFILE) $(MAINS)
+ 
+@@ -66,6 +75,24 @@ clean:
+ 	rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
+ 	rm -rf .deps
+ 
++install-shared: $(LIBFILE)
++	install -d $(LIBDIR) || true
++	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
++	rm -f $(LIBDIR)/$(SO_NAME)
++	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
++	rm -f $(LIBDIR)/$(LIBFILE)
++	ln -s $(SO_NAME) $(LIBDIR)/$(LIBFILE)
++
++install-static: $(ARFILE)
++	install -d $(LIBDIR) || true
++	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
++
++install-header: $(HEADERS)
++	install -d $(INCLUDEDIR) || true
++	install -m 0644 $(HEADERS) $(INCLUDEDIR)/
++
++install: install-shared install-static install-header
++
+ # Executable files
+ %: %.o $(LIBFILE)
+ 	$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
+
+From a635ff4654f94ab26b458c46a8841543e5bc8c67 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 3 Dec 2019 12:50:39 +0100
+Subject: [PATCH 5/7] Rename cpp library to qrcodegencpp to avoid conflict
+
+---
+ cpp/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 3271bd8..42fa4ff 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -52,7 +52,7 @@ VERSION = 1.5.0
+ 
+ # ---- Targets to build ----
+ 
+-LIB = qrcodegen
++LIB = qrcodegencpp
+ ARFILE = lib$(LIB).a
+ LIBFILE = lib$(LIB).so
+ # Bump the soname number when the ABI changes and gets incompatible
+
+From c073e7dfad6454dfd725a69c347f8272d29ea41c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 7 Jan 2020 09:18:59 +0100
+Subject: [PATCH 6/7] Add PREFIX variable and few minor fixes from code review
+
+---
+ c/Makefile   | 9 +++++----
+ cpp/Makefile | 9 +++++----
+ 2 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/c/Makefile b/c/Makefile
+index 7521944..874933e 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -29,7 +29,7 @@
+ # - CFLAGS: Any extra user-specified compiler flags (can be blank).
+ 
+ # Recommended compiler flags:
+-CFLAGS ?= -std=c99 -O
++CFLAGS += -std=c99
+ 
+ # Extra flags for diagnostics:
+ # CFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+@@ -63,8 +63,9 @@ LIBOBJ = qrcodegen.o
+ MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
+ 
+ # define paths to install
+-INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
+-LIBDIR ?= $(DESTDIR)/usr/lib
++PREFIX ?= /usr/local
++INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
++LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
+ 
+ # Build all binaries
+ all: $(LIBFILE) $(ARFILE) $(MAINS)
+@@ -105,7 +106,7 @@ $(ARFILE): $(LIBOBJ)
+ 	$(AR) -crs $@ -- $^
+ 
+ $(LIBFILE): $(LIBOBJ)
+-	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
++	$(CC) $(CFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
+ 
+ # Object files
+ %.o: %.c .deps/timestamp
+diff --git a/cpp/Makefile b/cpp/Makefile
+index 42fa4ff..f8d9b7f 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -29,7 +29,7 @@
+ # - CXXFLAGS: Any extra user-specified compiler flags (can be blank).
+ 
+ # Recommended compiler flags:
+-CXXFLAGS ?= -std=c++11 -O
++CXXFLAGS += -std=c++11
+ 
+ # Extra flags for diagnostics:
+ # CXXFLAGS += -g -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -fsanitize=undefined,address
+@@ -63,8 +63,9 @@ LIBOBJ = QrCode.o
+ MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
+ 
+ # define paths to install
+-INCLUDEDIR ?= $(DESTDIR)/usr/include/qrcodegen
+-LIBDIR ?= $(DESTDIR)/usr/lib
++PREFIX ?= /usr/local
++INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include/qrcodegen
++LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
+ 
+ 
+ # Build all binaries
+@@ -102,7 +103,7 @@ $(ARFILE): $(LIBOBJ)
+ 	$(AR) -crs $@ -- $^
+ 
+ $(LIBFILE): $(LIBOBJ)
+-	$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
++	$(CXX) $(CXXFLAGS) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
+ 
+ # Object files
+ %.o: %.cpp .deps/timestamp
+
+From b43c1de5cc874535a7f549cef437f6849528e455 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tchvatal@suse.com>
+Date: Tue, 7 Jan 2020 13:12:32 +0100
+Subject: [PATCH 7/7] Install static and shared library as an executable
+
+---
+ c/Makefile   | 4 ++--
+ cpp/Makefile | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/c/Makefile b/c/Makefile
+index 874933e..631cc71 100644
+--- a/c/Makefile
++++ b/c/Makefile
+@@ -77,7 +77,7 @@ clean:
+ 
+ install-shared: $(LIBFILE)
+ 	install -d $(LIBDIR) || true
+-	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
++	install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
+ 	rm -f $(LIBDIR)/$(SO_NAME)
+ 	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
+ 	rm -f $(LIBDIR)/$(LIBFILE)
+@@ -85,7 +85,7 @@ install-shared: $(LIBFILE)
+ 
+ install-static: $(ARFILE)
+ 	install -d $(LIBDIR) || true
+-	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
++	install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
+ 
+ install-header: $(HEADERS)
+ 	install -d $(INCLUDEDIR) || true
+diff --git a/cpp/Makefile b/cpp/Makefile
+index f8d9b7f..bbd861e 100644
+--- a/cpp/Makefile
++++ b/cpp/Makefile
+@@ -78,7 +78,7 @@ clean:
+ 
+ install-shared: $(LIBFILE)
+ 	install -d $(LIBDIR) || true
+-	install -m 0644 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
++	install -m 0755 $(LIBFILE) $(LIBDIR)/$(REAL_NAME)
+ 	rm -f $(LIBDIR)/$(SO_NAME)
+ 	ln -s $(REAL_NAME) $(LIBDIR)/$(SO_NAME)
+ 	rm -f $(LIBDIR)/$(LIBFILE)
+@@ -86,7 +86,7 @@ install-shared: $(LIBFILE)
+ 
+ install-static: $(ARFILE)
+ 	install -d $(LIBDIR) || true
+-	install -m 0644 $(ARFILE) $(LIBDIR)/$(ARFILE)
++	install -m 0755 $(ARFILE) $(LIBDIR)/$(ARFILE)
+ 
+ install-header: $(HEADERS)
+ 	install -d $(INCLUDEDIR) || true
diff --git a/gnu/packages/patches/reprotest-support-guix.patch b/gnu/packages/patches/reprotest-support-guix.patch
new file mode 100644
index 0000000000..621c4e3359
--- /dev/null
+++ b/gnu/packages/patches/reprotest-support-guix.patch
@@ -0,0 +1,79 @@
+From 31bd4fe777cbff3ebca74115e5735a8b8f584fa7 Mon Sep 17 00:00:00 2001
+From: Vagrant Cascadian <vagrant@reproducible-builds.org>
+Date: Thu, 6 Feb 2020 23:17:58 -0800
+Subject: [PATCH] Add support for GNU Guix.
+
+---
+ reprotest/lib/adt_testbed.py           |  2 ++
+ reprotest/lib/system_interface/guix.py | 39 ++++++++++++++++++++++++++
+ 2 files changed, 41 insertions(+)
+ create mode 100644 reprotest/lib/system_interface/guix.py
+
+diff --git a/reprotest/lib/adt_testbed.py b/reprotest/lib/adt_testbed.py
+index ef704d6..60bf763 100644
+--- a/reprotest/lib/adt_testbed.py
++++ b/reprotest/lib/adt_testbed.py
+@@ -40,6 +40,7 @@ import urllib.parse
+ from reprotest.lib.system_interface.debian import DebianInterface
+ from reprotest.lib.system_interface.arch import ArchInterface
+ from reprotest.lib.system_interface.fedora import FedoraInterface
++from reprotest.lib.system_interface.guix import GuixInterface
+ from reprotest.lib import adtlog
+ from reprotest.lib import VirtSubproc
+ 
+@@ -47,6 +48,7 @@ SYSTEM_INTERFACES = {
+         'debian': DebianInterface,
+         'arch': ArchInterface,
+         'fedora': FedoraInterface,
++        'guix': GuixInterface,
+         }
+ 
+ timeouts = {
+diff --git a/reprotest/lib/system_interface/guix.py b/reprotest/lib/system_interface/guix.py
+new file mode 100644
+index 0000000..2b06104
+--- /dev/null
++++ b/reprotest/lib/system_interface/guix.py
+@@ -0,0 +1,39 @@
++# adt_testbed.py is part of autopkgtest
++# autopkgtest is a tool for testing Debian binary packages. The
++# system_interface module is an addition for reprotest to make
++# this module distro-agnostic
++#
++# autopkgtest is Copyright (C) 2006-2015 Canonical Ltd.
++# the system_interface module is Copyright (C) 2017 Santiago Torres-Arias
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++#
++# See the file CREDITS for a full list of credits information (often
++# installed as /usr/share/doc/autopkgtest/CREDITS).
++import subprocess
++
++from . import SystemInterface
++
++class GuixInterface(SystemInterface):
++    """
++        SystemInterface implementation for GNU Guix hosts. Contains commands that
++        are specific to the GNU Guix toolchain.
++    """
++
++    def get_arch(self):
++        return ['uname', '-m']
++
++    def can_query_packages(self):
++        return False
+-- 
+2.20.1
+
diff --git a/gnu/packages/patches/rust-openssl-sys-no-vendor.patch b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
new file mode 100644
index 0000000000..78a6b5e3f7
--- /dev/null
+++ b/gnu/packages/patches/rust-openssl-sys-no-vendor.patch
@@ -0,0 +1,23 @@
+https://sources.debian.org/data/main/r/rust-openssl-sys/0.9.53-1/debian/patches/disable-vendor.patch
+"MIT" licensed according to debian/copyright file
+slightly modified to only change the vendored openssl-src dependency
+
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -31,14 +31,11 @@
+ [build-dependencies.cc]
+ version = "1.0"
+ 
+-[build-dependencies.openssl-src]
+-version = "111.0.1"
+-optional = true
+-
+ [build-dependencies.pkg-config]
+ version = "0.3.9"
+ 
+ [features]
+ vendored = ["openssl-src"]
++openssl-src = []
+ [target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg]
+ version = "0.2"
+
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index 80c454a5c4..e32e6c7b12 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -322,7 +322,7 @@ you to figure out what is going on in that merge you keep avoiding.")
 (define-public patchwork
   (package
     (name "patchwork")
-    (version "2.1.4")
+    (version "2.1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -331,7 +331,7 @@ you to figure out what is going on in that merge you keep avoiding.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0zi1hcqb0pi2diyznbv0c1631qk4rx02zl8ghyrr59g3ljlyr18y"))))
+                "1n4hfwlgmw6mj5kp261zfx47mgb0l7g2yzl1rf0rnm8x69lr3as6"))))
     (build-system python-build-system)
     (arguments
      `(;; TODO: Tests require a running database
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 62120b9cf9..f1d3b56221 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -45,6 +46,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
@@ -55,6 +57,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages game-development)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
@@ -74,6 +77,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-web)
@@ -82,8 +86,10 @@
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (srfi srfi-1))
 
@@ -752,6 +758,94 @@ program capable of converting PDF into other formats.")
 using a stylus.")
     (license license:gpl2+)))
 
+(define-public xournalpp
+  (package
+    (name "xournalpp")
+    (version "1.0.17")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xournalpp/xournalpp.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xw2mcgnm4sa9hrhfgp669lfypw97drxjmz5w8i5whaprpvmkxzw"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags (list "-DENABLE_CPPUNIT=ON") ;enable tests
+       #:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%cmake-build-system-modules)
+       #:modules (((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build cmake-build-system)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-permissions-on-po-files
+           (lambda _
+             ;; Always generate translations.  A recent upstream patch
+             ;; disabled it.
+             (substitute* "po/CMakeLists.txt"
+               (("gettext_create_translations \\(\"\\$\\{potfile\\}\"\\)")
+                "gettext_create_translations (\"${potfile}\" ALL)"))
+             ;; Make sure 'msgmerge' can modify the PO files.
+             (for-each (lambda (po) (chmod po #o666))
+                       (find-files "." "\\.po$"))
+             #t))
+         (add-after 'install 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+    (native-inputs
+     `(("cppunit" ,cppunit)
+       ("gcc" ,gcc-8)                   ;requires gcc 8+
+       ("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libsndfile" ,libsndfile)
+       ("libxml2" ,libxml2)
+       ("libzip" ,libzip)
+       ("lua" ,lua)                    ;FIXME: It cannot find the Lua library.
+       ("poppler" ,poppler)
+       ("portaudio" ,portaudio)
+       ("texlive-bin" ,texlive-bin)))
+    (home-page "https://github.com/xournalpp/xournalpp")
+    (synopsis "Handwriting notetaking software with PDF annotation support")
+    (description "Xournal++ is a hand note taking software written in
+C++ with the target of flexibility, functionality and speed.  Stroke
+recognizer and other parts are based on Xournal code.
+
+Xournal++ features:
+
+@itemize
+@item Support for Pen pressure, e.g., Wacom Tablet
+@item Support for annotating PDFs
+@item Fill shape functionality
+@item PDF Export (with and without paper style)
+@item PNG Export (with and without transparent background)
+@item Allow to map different tools / colors etc. to stylus buttons /
+mouse buttons
+@item Sidebar with Page Previews with advanced page sorting, PDF
+Bookmarks and Layers (can be individually hidden, editing layer can be
+selected)
+@item enhanced support for image insertion
+@item Eraser with multiple configurations
+@item LaTeX support
+@item bug reporting, autosave, and auto backup tools
+@item Customizeable toolbar, with multiple configurations, e.g., to
+optimize toolbar for portrait / landscape
+@item Page Template definitions
+@item Shape drawing (line, arrow, circle, rectangle)
+@item Shape resizing and rotation
+@item Rotation snapping every 45 degrees
+@item Rect snapping to grid
+@item Audio recording and playback alongside with handwritten notes
+@item Multi Language Support, Like English, German, Italian...
+@item Plugins using LUA Scripting
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public python-reportlab
   (package
     (name "python-reportlab")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 590bd5083b..078aa95c34 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Stephen J. Scheck <sscheck@cpan.org>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1371,6 +1372,26 @@ parser in your Perl programme and allows sharing configuration files between
 languages.")
     (license bsd-3)))
 
+(define-public perl-config-grammar
+  (package
+    (name "perl-config-grammar")
+    (version "1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/D/DS/DSCHWEI/"
+                           "Config-Grammar-" version ".tar.gz"))
+       (sha256
+        (base32 "1qynf5bk6mnk90nggm3z8rdz2535kmqg46s0vj93pi68r6ia7cx8"))))
+    (build-system perl-build-system)
+    (home-page "https://metacpan.org/release/Config-Grammar")
+    (synopsis "Grammar-based config parser")
+    (description
+     "Config::Grammar is a module to parse configuration files.  The
+configuration may consist of multiple-level sections with assignments and
+tabular data.")
+    (license (package-license perl))))
+
 (define-public perl-config-any
   (package
     (name "perl-config-any")
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 9ef9587975..4ea36a2fba 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -75,7 +75,7 @@ data in motion, or as a file format for data at rest.")
 (define-public protobuf
   (package
     (name "protobuf")
-    (version "3.10.1")
+    (version "3.11.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/google/protobuf/releases/"
@@ -83,7 +83,7 @@ data in motion, or as a file format for data at rest.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "16xrclp3xw4hzni1h53px9s99657hs5790726lchm3hrvsyyabp8"))))
+                "0l8a1sgzhwwx5j5hv9n9zx8vkdwwn5gvd9dcpkkz4h0j17k1zywz"))))
     (build-system gnu-build-system)
     (inputs `(("zlib" ,zlib)))
     (outputs (list "out"
@@ -203,14 +203,14 @@ encoder in C++.  The developer using protozero has to manually translate the
 (define-public python-protobuf
   (package
     (name "python-protobuf")
-    (version "3.10.0")
+    (version "3.11.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "protobuf" version))
        (sha256
         (base32
-         "1zjq3qi0wgqi0fwxgqlgwvj9ri1m4kmnz3jnpd803lqc5k0vb0yv"))))
+         "07qby3yc2a8a1vsxnc79j687q4r68k1d3npni7bldwmd3m6rfz67"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index 62d555d788..7c4c26f009 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Amin Bandali <mab@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,9 +40,11 @@
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages web)
@@ -385,3 +388,77 @@ install one or more of the following packages alongside pulseaudio-dlna:
 @item vorbis-tools - Vorbis transcoding support
 @end itemize")
       (license l:gpl3+))))
+
+(define-public pamixer
+  (package
+    (name "pamixer")
+    (version "1.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cdemoulins/pamixer.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1i14550n8paijwwnhksv5izgfqm3s5q2773bdfp6vyqybkll55f7"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ; There is no test suite.
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; There's no configure phase.
+         (add-before 'install 'mkdir-bin
+           (lambda _
+             (mkdir-p (string-append (assoc-ref %outputs "out") "/bin"))
+             #t)))))
+    (inputs
+     `(("boost" ,boost)
+       ("pulseaudio" ,pulseaudio)))
+    (home-page "https://github.com/cdemoulins/pamixer")
+    (synopsis "PulseAudio command line mixer")
+    (description
+     "pamixer is like amixer but for PulseAudio, allowing easy control of the
+volume levels of the sinks (get, set, decrease, increase, toggle mute, etc).")
+    (license l:gpl3+)))
+
+(define-public pasystray
+  (package
+    (name "pasystray")
+    (version "0.7.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/christophgysin/pasystray.git")
+             (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0xx1bm9kimgq11a359ikabdndqg5q54pn1d1dyyjnrj0s41168fk"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'remove-bootstrap.sh
+           (lambda _
+             ;; Interferes with the bootstrap phase.
+             (delete-file "bootstrap.sh")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("avahi" ,avahi)
+       ("gtk+" ,gtk+)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("pulseaudio" ,pulseaudio)))
+    (home-page "https://github.com/christophgysin/pasystray")
+    (synopsis "PulseAudio controller for the system tray")
+    (description "@command{pasystray} enables control of various
+PulseAudio server settings from the X11 system tray.  See the project
+README.md for a detailed list of features.")
+    (license l:lgpl2.1+)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 67d0582a4f..0014cc3bf3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2017 Eric Bavier <bavier@member.fsf.org>
@@ -1990,6 +1990,28 @@ between Julian dates and Gregorian dates.")
 (define-public python2-jdcal
   (package-with-python2 python-jdcal))
 
+(define-public python-jsondiff
+  (package
+   (name "python-jsondiff")
+   (version "1.2.0")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (pypi-uri "jsondiff" version))
+     (sha256
+      (base32
+       "00v3689175aqzdscrxpffm712ylp8jvcpqdg51ca22ni6721p51l"))))
+   (build-system python-build-system)
+   (native-inputs
+    `(("python-nose" ,python-nose)
+      ("python-nose-random" ,python-nose-random)))
+   (home-page
+    "https://github.com/fzumstein/jsondiff")
+   (synopsis "Compare JSON and JSON-like structures in Python")
+   (description "@code{jsondiff} is a Python library which lets you
+compare, diff, and patch JSON and JSON-like structures in Python.")
+   (license license:expat)))
+
 (define-public python-jsonschema
   (package
     (name "python-jsonschema")
@@ -2922,6 +2944,27 @@ for SSH and SFTP.  It has the following main usages:
 @end itemize")
     (license license:asl2.0)))
 
+(define-public python-rstr
+  (package
+   (name "python-rstr")
+   (version "2.2.6")
+   (source
+    (origin
+     (method url-fetch)
+     (uri (pypi-uri "rstr" version))
+     (sha256
+      (base32
+       "197dw8mbq0pjjz1l6h1ksi62vgn7x55d373ch74y06744qiq5sjx"))))
+   (build-system python-build-system)
+   (home-page
+    "http://bitbucket.org/leapfrogdevelopment/rstr/overview")
+   (synopsis "Generate random strings in Python")
+   (description "This package provides a python module for generating
+random strings of various types.  It could be useful for fuzz testing,
+generating dummy data, or other applications.  It has no dependencies
+outside the standard library.")
+   (license license:bsd-3)))
+
 (define-public python-scp
   (package
     (name "python-scp")
@@ -6716,14 +6759,14 @@ Python.")
 (define-public python-markdown
   (package
     (name "python-markdown")
-    (version "3.1.1")
+    (version "3.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Markdown" version))
        (sha256
         (base32
-         "0yhylk4ffqqs7x086fav4pnfsl1021v7lghznzkififprmmqfl1f"))))
+         "1gwqrhrp0n9xllgmjc8n1p260968kr0dd2jncjkj4r617q61imss"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-nose" ,python-nose)
@@ -6735,10 +6778,21 @@ Python.")
 Markdown.  The library features international input, various Markdown
 extensions, and several HTML output formats.  A command line wrapper
 markdown_py is also provided to convert Markdown files to HTML.")
+    (properties `((python2-variant . ,(delay python2-markdown))))
     (license license:bsd-3)))
 
+;; Markdown 3.2 dropped support for Python 2.
 (define-public python2-markdown
-  (package-with-python2 python-markdown))
+  (let ((base (package-with-python2 (strip-python2-variant python-markdown))))
+    (package/inherit
+     base
+     (version "3.1.1")
+     (source (origin
+               (method url-fetch)
+               (uri (pypi-uri "Markdown" version))
+               (sha256
+                (base32
+                 "0yhylk4ffqqs7x086fav4pnfsl1021v7lghznzkififprmmqfl1f")))))))
 
 (define-public python-ptyprocess
   (package
@@ -7427,14 +7481,14 @@ responses, rather than doing any computation.")
 (define-public python-pip
   (package
     (name "python-pip")
-    (version "19.2.1")
+    (version "20.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pip" version))
        (sha256
         (base32
-         "100sd12ss4mbdj5lf3wawad29cm573b27765mq098x6xhcj71395"))))
+         "0zwnlsjn6mb742cr995zfbk9v56ygxp8w3k49601r9by9kmcic3x"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))          ; there are no tests in the pypi archive.
@@ -8867,7 +8921,7 @@ Pytest but stripped of Pytest specific details.")
     `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout)
       ("python-pytest" ,python-pytest)  ; >= 2.3.5
       ("python-setuptools-scm" ,python-setuptools-scm)))
-   (home-page "http://tox.testrun.org/")
+   (home-page "https://tox.readthedocs.io")
    (synopsis "Virtualenv-based automation of test activities")
    (description "Tox is a generic virtualenv management and test command line
 tool.  It can be used to check that a package installs correctly with
@@ -10505,13 +10559,13 @@ Wikipedia code samples at
 (define-public python-cleo
   (package
     (name "python-cleo")
-    (version "0.6.8")
+    (version "0.7.6")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "cleo" version))
               (sha256
                (base32
-                "06zp695hq835rkaq6irr1ds1dp2qfzyf32v60vxpd8rcnxv319l5"))))
+                "02dlc0rn43zgvw0s5v4j80bca9n1jfpwy3r78gn9qjgk0qj39kwr"))))
     (build-system python-build-system)
     (native-inputs
      `( ;; For testing
@@ -10520,6 +10574,7 @@ Wikipedia code samples at
        ("python-pytest" ,python-pytest)))
     (propagated-inputs
      `(("python-backpack" ,python-backpack)
+       ("python-clikit" ,python-clikit)
        ("python-pastel" ,python-pastel)
        ("python-pylev" ,python-pylev)))
     (home-page "https://github.com/sdispater/cleo")
@@ -10535,14 +10590,14 @@ docstring and colored output.")
 (define-public python-tomlkit
   (package
     (name "python-tomlkit")
-    (version "0.5.7")
+    (version "0.5.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tomlkit" version))
        (sha256
         (base32
-         "18820ga5z3if1w8dvykxrfm000akracq01ic402xrbljgbn5grn4"))))
+         "0sf2a4q61kf344hjbw8kb6za1hlccl89j9lzqw0l2zpddp0hrh9j"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-pytest" ,python-pytest)))
@@ -10602,14 +10657,14 @@ more, possibly remote, memcached servers.")
 (define-public python-clikit
   (package
     (name "python-clikit")
-    (version "0.2.4")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "clikit" version))
        (sha256
         (base32
-         "0dc8czib5f4j9px1ivcpqnmivnx2zjpc0xb00ldrhsqylks7r06n"))))
+         "10gab65pq0jdf589n33sj2513pxal2lisl4xwf1ijysdjxmpdr4a"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-pastel" ,python-pastel)
@@ -15453,7 +15508,7 @@ under Python 2.7.")
 (define-public pybind11
   (package
     (name "pybind11")
-    (version "2.3.0")
+    (version "2.4.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -15461,23 +15516,43 @@ under Python 2.7.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "11b6dniri8m05spfd2a19irz82shf4sdca73566bniggrf3zclnf"))
+                "0k89w4bsfbpzw963ykg1cyszi3h3nk393qd31m6y46pcfxkqh4rd"))
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("python" ,python)
-       ("python-pytest" ,python-pytest)))
+     `(("python" ,python-wrapper)
+
+       ;; The following dependencies are used for tests.
+       ("python-pytest" ,python-pytest)
+       ("catch" ,catch-framework2-1)
+       ("eigen" ,eigen)))
     (arguments
-     `(#:test-target "check"))
+     `(#:configure-flags
+       (list (string-append "-DCATCH_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "catch")
+                            "/include/catch"))
+
+       #:phases (modify-phases %standard-phases
+                  (add-after 'install 'install-python
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (with-directory-excursion "../source"
+                          (setenv "PYBIND11_USE_CMAKE" "yes")
+                          (invoke "python" "setup.py" "install"
+                                  "--single-version-externally-managed"
+                                  "--root=/"
+                                  (string-append "--prefix=" out)))))))
+
+       #:test-target "check"))
     (home-page "https://github.com/pybind/pybind11/")
     (synopsis "Seamless operability between C++11 and Python")
-    (description "pybind11 is a lightweight header-only library that exposes
-C++ types in Python and vice versa, mainly to create Python bindings of
-existing C++ code.  Its goals and syntax are similar to the excellent
-Boost.Python library by David Abrahams: to minimize boilerplate code in
-traditional extension modules by inferring type information using compile-time
-introspection.")
-    (license license:expat)))
+    (description
+     "@code{pybind11} is a lightweight header-only library that exposes C++
+types in Python and vice versa, mainly to create Python bindings of existing
+C++ code.  Its goals and syntax are similar to the @code{Boost.Python}
+library: to minimize boilerplate code in traditional extension modules by
+inferring type information using compile-time introspection.")
+    (license license:bsd-3)))
 
 (define-public python-fasteners
   (package
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 90bd146442..ac50f9591a 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,14 +25,184 @@
   #:use-module (guix packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages documentation)
+  #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control))
 
+(define-public exa
+  (package
+    (name "exa")
+    (version "0.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "exa" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-datetime" ,rust-datetime-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.6)
+        ("rust-git2" ,rust-git2-0.9)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-locale" ,rust-locale-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-natord" ,rust-natord-1.0)
+        ("rust-num-cpus" ,rust-num-cpus-1.11)
+        ("rust-number-prefix" ,rust-number-prefix-0.3)
+        ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
+        ("rust-term-grid" ,rust-term-grid-0.1)
+        ("rust-term-size" ,rust-term-size-0.3)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-users" ,rust-users-0.9)
+        ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4))
+       #:cargo-development-inputs
+       (("rust-datetime" ,rust-datetime-0.4))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'dont-vendor-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((openssl (assoc-ref inputs "openssl")))
+               (setenv "OPENSSL_DIR" openssl))
+             #t))
+         ;; Ignoring failing tests.
+         ;; Reported in https://github.com/ogham/exa/issues/318
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             (substitute* "src/options/mod.rs"
+               (("^.*fn oneline_across.*" oneline-across)
+                (string-append "#[ignore]\n" oneline-across)))
+
+             (substitute* "src/options/view.rs"
+               (("test!\\(across:.*") "")
+               (("test!\\(empty:.*") "")
+               (("test!\\(gracross:.*") "")
+               (("test!\\(grid:.*") "")
+               (("test!\\(icons:.*") "")
+               (("test!\\(just_binary:.*") "")
+               (("test!\\(just_blocks:.*") "")
+               (("test!\\(just_bytes:.*") "")
+               (("test!\\(just_git:.*") "")
+               (("test!\\(just_group:.*") "")
+               (("test!\\(just_header:.*") "")
+               (("test!\\(just_inode:.*") "")
+               (("test!\\(just_links:.*") "")
+               (("test!\\(leg:.*") "")
+               (("test!\\(lid:.*") "")
+               (("test!\\(original_g:.*") ""))
+             #t))
+         (add-after 'install 'install-extras
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out   (assoc-ref outputs "out"))
+                    (share (string-append out "/share"))
+                    (man1  (string-append share "/man/man1")))
+               (install-file "contrib/man/exa.1" man1)
+               (mkdir-p (string-append out "/etc/bash_completion.d"))
+               (mkdir-p (string-append share "/fish/vendor_completions.d"))
+               (mkdir-p (string-append share "/zsh/site-functions"))
+               (copy-file "contrib/completions.bash"
+                          (string-append out "/etc/bash_completion.d/exa"))
+               (copy-file "contrib/completions.fish"
+                          (string-append share "/fish/vendor_completions.d/exa.fish"))
+               (copy-file "contrib/completions.zsh"
+                          (string-append share "/zsh/site-functions/_exa"))
+               #t))))))
+    (inputs
+     `(("libgit2" ,libgit2)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "https://the.exa.website/")
+    (synopsis "Modern replacement for ls")
+    (description "@code{exa} is a modern replacement for the command-line
+program @code{ls}.  It uses colours to distinguish file types and metadata.  It
+also knows about symlinks, extended attributes, and Git.")
+    (license license:expat)))
+
+(define-public fd
+  (package
+    (name "fd")
+    (version "7.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fd-find" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "147m872zff0srwq9vaxkkbab06g3fkklbk1g2lx90vdhgs37f5xj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-ctrlc" ,rust-ctrlc-3.1)
+        ("rust-globset" ,rust-globset-0.4)
+        ("rust-humantime" ,rust-humantime-1.3)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-jemallocator" ,rust-jemallocator-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-lscolors" ,rust-lscolors-0.6)
+        ("rust-num-cpus" ,rust-num-cpus-1.10)
+        ("rust-regex" ,rust-regex-1.3)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-version-check" ,rust-version-check-0.9))
+       #:cargo-development-inputs
+       (("rust-diff" ,rust-diff-0.1)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-tempdir" ,rust-tempdir-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'override-jemalloc
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((jemalloc (assoc-ref inputs "jemalloc")))
+               (setenv "JEMALLOC_OVERRIDE"
+                       (string-append jemalloc "/lib/libjemalloc.so")))
+             #t))
+         (add-after 'install 'install-extra
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (install-completion
+                     (lambda (completion out-dir)
+                       (for-each
+                        (lambda (f)
+                          (install-file f (string-append out out-dir)))
+                        (find-files "target/release/build/" completion)))))
+               ;; Manpages
+               (install-file "doc/fd.1" (string-append out "/share/man/man1"))
+               ;; Completions
+               (install-completion "^fd.bash$" "/etc/bash-completion.d")
+               (install-completion "^fd.fish$" "/share/fish/vendor_completions.d")
+               (install-completion "^_fd$" "/share/zsh/site-functions")
+               (rename-file (string-append out "/etc/bash-completion.d/fd.bash")
+                            (string-append out "/etc/bash-completion.d/fd"))
+               #t))))))
+    (inputs `(("jemalloc" ,jemalloc)))
+    (home-page "https://github.com/sharkdp/fd")
+    (synopsis "Simple, fast and user-friendly alternative to find")
+    (description
+     "@code{fd} is a simple, fast and user-friendly alternative to @code{find}.
+While it does not seek to mirror all of find's powerful functionality, it
+provides defaults for 80% of the use cases.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
-    (version "11.0.1")
+    (version "11.0.2")
     (source
      (origin
        (method url-fetch)
@@ -40,25 +211,54 @@
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0bn40lz9n08llq615p4qqqbi24zbkf0appfx3zgxg34a86ga9zds"))))
+         "0vqjr96s2rs45715hzf0g0wjahig4zjyiqfijmzzg4jyh9ni80yr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bstr" ,rust-bstr-0.1)
+       (("rust-bstr" ,rust-bstr-0.2)
         ("rust-clap" ,rust-clap-2)
         ("rust-grep" ,rust-grep-0.2)
         ("rust-ignore" ,rust-ignore-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
+        ("rust-jemallocator" ,rust-jemallocator-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-num-cpus" ,rust-num-cpus-1.10)
         ("rust-regex" ,rust-regex-1.1)
         ("rust-serde-json" ,rust-serde-json-1.0)
         ("rust-termcolor" ,rust-termcolor-1.0))
        #:cargo-development-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-lazy-static" ,rust-lazy-static-1.3)
-        ("rust-serde" ,rust-serde-1.0)
-        ("rust-serde-derive" ,rust-serde-derive-1.0))))
+       (("rust-serde" ,rust-serde-1.0)
+        ("rust-serde-derive" ,rust-serde-derive-1.0))
+       #:modules ((ice-9 match)
+                  (guix build cargo-build-system)
+                  (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'install-manpage
+           ;; NOTE: This is done before 'check so that there's only one output
+           ;; directory with the man page.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (match (find-files "target" "^rg\\.1$")
+               ((manpage)
+                (install-file manpage (string-append
+                                        (assoc-ref outputs "out")
+                                        "/share/man/man1"))))
+             #t))
+         (replace 'install
+           ;; Adapted from (guix build cargo-build-system). The flags need to
+           ;; be passed to `cargo install' too, as otherwise it will build
+           ;; another binary, without the features.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p out)
+               (setenv "CARGO_TARGET_DIR" "./target")
+               (invoke "cargo" "install" "--path" "." "--root" out
+                       "--features" "pcre2")))))
+       #:cargo-build-flags '("--release" "--features" "pcre2")))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("pcre2" ,pcre2)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://github.com/BurntSushi/ripgrep")
     (synopsis "Line-oriented search tool")
     (description
@@ -70,7 +270,7 @@ gitignore rules.")
 (define-public rust-cbindgen
   (package
     (name "rust-cbindgen")
-    (version "0.12.2")
+    (version "0.13.0")
     (source
       (origin
         (method url-fetch)
@@ -78,7 +278,7 @@ gitignore rules.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))
+          "1kywaz62cglg8fv0p7mp1m946gwmrf62s8ffndd5zpf1mz21j472"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -134,7 +334,7 @@ gitignore rules.")
        (("rust-git2" ,rust-git2-0.11)
         ("rust-handlebars" ,rust-handlebars-2.0)
         ("rust-ignore" ,rust-ignore-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1.3)
         ("rust-serde-json" ,rust-serde-json-1.0)
         ("rust-tempfile" ,rust-tempfile-3.0))
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 97ba882553..76afdefabe 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -182,7 +182,7 @@
                  (copy-file "run_rustc/Makefile"
                             (string-append run_rustc "/Makefile"))
                  #t))))))
-      (synopsis "Compiler for the Rust progamming language")
+      (synopsis "Compiler for the Rust programming language")
       (description "Rust is a systems programming language that provides memory
 safety and thread safety guarantees.")
       (home-page "https://github.com/thepowersgang/mrustc")
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index d0db693e30..4eef7de5d7 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
-;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -423,26 +423,16 @@ key-value pair databases and a real LDAP database.")
 (define-public ppp
   (package
     (name "ppp")
-    (version "2.4.7")
+    (version "2.4.8")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.samba.org/ftp/ppp/ppp-"
-                                  version ".tar.gz"))
-              (patches
-               (list (origin
-                       ;; Use OpenSSL for cryptography instead of the obsolete glibc
-                       ;; crypto functions that were removed in glibc 2.28.
-                       (method url-fetch)
-                       (uri (string-append "https://github.com/paulusmack/ppp/commit/"
-                                           "3c7b86229f7bd2600d74db14b1fe5b3896be3875"
-                                           ".patch"))
-                       (file-name "ppp-use-openssl-crypto.patch")
-                       (sha256
-                        (base32
-                         "0qlbi247lx3injpy8a1gcij9yilik0vfaibkpvdp88k3sa1rs69z")))))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/paulusmack/ppp")
+                    (commit (string-append "ppp-" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0c7vrjxl52pdwi4ckrvfjr08b31lfpgwf3pp0cqy76a77vfs7q02"))))
+                "1i88m79h6g3fzsb4yw3k8bq1grsx3hsyawm7id2vcaab0gfqzjjv"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; no check target
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index d3c63f6231..55a642241d 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -131,6 +131,13 @@ package contains the library, but no drivers.")
        ((#:phases phases)
         `(modify-phases ,phases
            (delete 'disable-backends)
+           (add-after 'disable-failing-tests 'disable-failing-backend-tests
+             (lambda _
+               ;; Disable test that fails on i686:
+               ;;   <https://bugs.gnu.org/39449>
+               (substitute* "testsuite/backend/genesys/Makefile.in"
+                 ((" genesys_unit_tests\\$\\(EXEEXT\\)") ""))
+               #t))
            (add-after 'unpack 'add-backends
              (lambda _
                (substitute* "backend/dll.conf.in"
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 5fef20c92c..182e0250ad 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -368,47 +368,6 @@ applications in many fields such as multimedia (web galleries, music players,
 mashups, office (web agendas, mail clients, ...), etc.")
     (license gpl2+)))
 
-(define-public chicken
-  (package
-    (name "chicken")
-    (version "5.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://code.call-cc.org/releases/"
-                                  version "/chicken-" version ".tar.gz"))
-              (sha256
-               (base32
-                "15b5yrzfa8aimzba79x7v6y282f898rxqxfxrr446sjx9jwlpfd8"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
-
-       ;; No `configure' script; run "make check" after "make install" as
-       ;; prescribed by README.
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'check)
-         (add-after 'install 'check
-           (assoc-ref %standard-phases 'check)))
-
-       #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list "PLATFORM=linux"
-                            (string-append "PREFIX=" out)
-                            (string-append "VARDIR=" out "/var/lib")))
-
-       ;; Parallel builds are not supported, as noted in README.
-       #:parallel-build? #f))
-    (home-page "http://www.call-cc.org/")
-    (synopsis "R5RS Scheme implementation that compiles native code via C")
-    (description
-     "CHICKEN is a compiler for the Scheme programming language.  CHICKEN
-produces portable and efficient C, supports almost all of the R5RS Scheme
-language standard, and includes many enhancements and extensions.")
-    (license bsd-3)))
-
 (define-public scheme48
   (package
     (name "scheme48")
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index b9a0f6a864..51168903a9 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -38,13 +38,13 @@
 (define-public screen
   (package
     (name "screen")
-    (version "4.7.0")
+    (version "4.8.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/screen/screen-"
                                  version ".tar.gz"))
              (sha256
-              (base32 "1h90bpy2wk304xw367y1zwz0kilrpm6h28nphykx4fvqz8l56xys"))))
+              (base32 "18ascpjzsy70h6hk7wpg8zmzjwgdyrdr7c6z4pg5z4l9hhyv24bf"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("makeinfo" ,texinfo)))
diff --git a/gnu/packages/sdr.scm b/gnu/packages/sdr.scm
index f6c9050503..563a9b3887 100644
--- a/gnu/packages/sdr.scm
+++ b/gnu/packages/sdr.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Christopher Howard <christopher@librehacker.com>
+;;; Copyright © 2019, 2020 Evan Straw <evan.straw99@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,11 +20,9 @@
 (define-module (gnu packages sdr)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
-  #:use-module (guix utils)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
-  #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools))
 
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 8149b05c95..21209f8b0c 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -95,7 +95,7 @@
             #t)))))
     (native-inputs
      `(("doxygen" ,doxygen)))
-    (home-page "http://uscilab.github.io/cereal/")
+    (home-page "https://uscilab.github.io/cereal/")
     (synopsis "C++11 library for serialization")
     (description
      "Cereal is a header-only C++11 serialization library.  Cereal takes
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index f5e839fd58..0e61284c50 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -12,7 +12,8 @@
 ;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
 ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -403,7 +404,7 @@ history mechanism, job control and a C-like syntax.")
 (define-public zsh
   (package
     (name "zsh")
-    (version "5.6.2")
+    (version "5.7.1")
     (source (origin
               (method url-fetch)
               (uri (list (string-append
@@ -414,9 +415,10 @@ history mechanism, job control and a C-like syntax.")
                            ".tar.xz")))
               (sha256
                (base32
-                "17iffliqcj4hv91g0bd2sxsyfcz51mfyh97sp2iyrs2p0mndc2x5"))))
+                "1s3yww0mzgvpc48kp0x868mm3gbna42sbgzya0nknj0x5hn2jq3j"))))
     (build-system gnu-build-system)
-    (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre")
+    (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre"
+                                     "--enable-maildir-support")
                  #:phases
                  (modify-phases %standard-phases
                    (add-before 'configure 'fix-sh
@@ -826,3 +828,30 @@ Scheme.  It provides both the shell interface, as well as a Guile
 library for parsing shell scripts.  Gash is designed to bootstrap Bash
 as part of the Guix bootstrap process.")
     (license gpl3+)))
+
+(define-public gash-utils
+  (package
+    (name "gash-utils")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://savannah/gash/gash-utils-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0ib2p52qmbac5n0s5bys4fiwim461ps546976l1n7pwbs0avh7fk"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("guile" ,guile-2.2)
+       ("gash" ,gash)))
+    (home-page "https://savannah.nongnu.org/projects/gash/")
+    (synopsis "Core POSIX utilities written in Guile Scheme")
+    (description "Gash-Utils provides Scheme implementations of many
+common POSIX utilities (there are about 40 of them, ranging in
+complexity from @command{false} to @command{awk}).  The utilities are
+designed to be capable of bootstrapping their standard GNU counterparts.
+Underpinning these utilities are many Scheme interfaces for manipulating
+files and text.")
+    (license gpl3+)))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 18ca274482..c4b1f525e3 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1306,7 +1306,7 @@ adapted for other output formats, such as HTML or LaTeX.")
                (base32
                 "1nsxbrx31k3y6yql30qkrvdfyznlia2qfvwv95mfiy7m7wdn4rm3"))))
     (build-system r-build-system)
-    (home-page "http://yihui.name/formatR")
+    (home-page "https://yihui.org/formatr/")
     (synopsis "Format R code automatically")
     (description
      "This package provides a function to format R source code.  Spaces and
@@ -3221,7 +3221,7 @@ analysis of large sparse or dense matrices.")
     `(("r-foreach" ,r-foreach)
       ("r-matrix" ,r-matrix)
       ("r-shape" ,r-shape)))
-   (home-page "http://www.jstatsoft.org/v33/i01")
+   (home-page "https://www.jstatsoft.org/article/view/v033i01")
    (synopsis "Lasso and elastic-net regularized generalized linear models")
    (description
     "The glmnet package provides efficient procedures for fitting the entire
@@ -5441,7 +5441,7 @@ genome-wide association studies can be analyzed efficiently.")
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.rforge.net/Cairo/")
+    (home-page "https://www.rforge.net/Cairo/")
     (synopsis "R graphics device using Cairo graphics library")
     (description
      "This package provides a Cairo graphics device that can be use to
@@ -5823,7 +5823,7 @@ Java package that provides routines for various statistical distributions.")
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
+     (let ((base-directory "/share/emacs/site-lisp"))
        `(#:make-flags (list (string-append "PREFIX=" %output)
                             (string-append "ETCDIR=" %output "/"
                                            ,base-directory "/etc")
diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm
index 5444347644..9cb2ae10b6 100644
--- a/gnu/packages/stb.scm
+++ b/gnu/packages/stb.scm
@@ -101,3 +101,14 @@ decoding from file or memory.  A variety of formats are supported."))
    "stb-image-write" "1.13"
    "stb-image-write is a small library for writing image files to the
 C@tie{}@code{stdio} interface."))
+
+(define-public stb-sprintf
+  (make-stb-header-package
+   "stb-sprintf" "1.06"
+   "stb-sprintf implements fast @code{sprintf}, @code{snprintf} for C/C++."))
+
+(define-public stb-truetype
+  (make-stb-header-package
+   "stb-truetype" "1.22"
+   "stb-truetype is a library for parsing, decoding, and rasterizing
+characters from TrueType fonts."))
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index e3a883a535..875d105110 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -53,14 +53,14 @@
 (define-public ceph
   (package
     (name "ceph")
-    (version "14.2.5")
+    (version "14.2.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.ceph.com/tarballs/ceph-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0wbkdplxs8higmlj57a7rydmx9rq08h0arjrmxmp0s80bn0v5x2c"))
+                "0qiqhm6hvz299q54k3i4crnb5dhpq6xnn2yqih9pxn9van0dq1ln"))
               (patches
                (search-patches "ceph-boost-compat.patch"
                                "ceph-volume-respect-PATH.patch"
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 8b41a6317f..2357b08f87 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +30,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.2.2")
+    (version "1.3.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
@@ -38,7 +38,7 @@
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "1wdjh8xw09s1nfkpc95v04619gqa4dpbygp2y5l35ww4g916lv3s"))
+                "025fhfqzcl5qd38zak8485pd67iqkzsf6frm02cl25s3ggv2f0p4"))
               (modules '((guix build utils)))
               ;; Delete bundled ("vendored") free software source code.
               (snippet '(begin
@@ -52,8 +52,8 @@
     ;; When updating Syncthing, check 'go.mod' in the source distribution to
     ;; ensure we are using the correct versions of these dependencies.
     (inputs
-     `(("go-github-com-audriusbutkevicius-go-nat-pmp"
-        ,go-github-com-audriusbutkevicius-go-nat-pmp)
+     `(("go-github-com-jackpal-go-nat-pmp"
+        ,go-github-com-jackpal-go-nat-pmp)
        ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4)
        ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
        ("go-github-com-chmduquesne-rollinghash"
@@ -100,7 +100,10 @@
        ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
 
     (arguments
-     `(#:import-path "github.com/syncthing/syncthing"
+     `(#:modules ((srfi srfi-26) ; for cut
+                  (guix build utils)
+                  (guix build go-build-system))
+       #:import-path "github.com/syncthing/syncthing"
        ;; We don't need to install the source code for end-user applications.
        #:install-source? #f
        #:phases
@@ -114,7 +117,13 @@
          (replace 'build
            (lambda _
              (with-directory-excursion "src/github.com/syncthing/syncthing"
-               (invoke "go" "run" "build.go" "-no-upgrade"))))
+               ;; XXX The only way to build Syncthing without its automatic
+               ;; updater and to build the utilities is to "build all" and then
+               ;; "build syncthing" again with -no-upgrade.
+               ;; https://github.com/syncthing/syncthing/issues/6118
+               (invoke "go" "run" "build.go" "build" "all")
+               (delete-file "syncthing")
+               (invoke "go" "run" "build.go" "-no-upgrade" "build" "syncthing"))))
 
          (replace 'check
            (lambda _
@@ -124,14 +133,16 @@
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
-                   (utils (assoc-ref outputs "utils"))
-                   (src "src/github.com/syncthing/syncthing/bin/"))
-               (install-file (string-append src "/syncthing")
-                             (string-append out "/bin"))
-               (delete-file (string-append src "/syncthing"))
-               (copy-recursively "src/github.com/syncthing/syncthing/bin/"
-                                 (string-append utils "/bin"))
-               #t)))
+                   (utils (assoc-ref outputs "utils")))
+               (with-directory-excursion "src/github.com/syncthing/syncthing"
+                 (install-file "syncthing" (string-append out "/bin"))
+                 (for-each (cut install-file <> utils)
+                           '("stcli" "stcompdirs" "stcrashreceiver"
+                             "stdisco" "stdiscosrv" "stevents" "stfileinfo"
+                             "stfinddevice" "stfindignored" "stgenfiles"
+                             "stindex" "strelaypoolsrv" "strelaysrv" "stsigtool"
+                             "stvanity" "stwatchfile" "uraggregate" "ursrv"))
+                 #t))))
 
          (add-after 'install 'install-docs
            (lambda* (#:key outputs #:allow-other-keys)
@@ -163,29 +174,28 @@ Protocol.")
     (home-page "https://github.com/syncthing/syncthing")
     (license mpl2.0)))
 
-(define-public go-github-com-audriusbutkevicius-go-nat-pmp
-  (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca")
-        (revision "0"))
-    (package
-      (name "go-github-com-audriusbutkevicius-go-nat-pmp")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/AudriusButkevicius/go-nat-pmp")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
-      (synopsis "Port mapping and discovery of external IP address")
-      (description "This package provides a Go client for the NAT-PMP internet
+(define-public go-github-com-jackpal-go-nat-pmp
+  (package
+    (name "go-github-com-jackpal-go-nat-pmp")
+    (version "1.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackpal/go-nat-pmp")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1p2yrzfbkazc9nisr2iqjwzhb6q16zj6finyxxn2ikk7iiighl1g"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/jackpal/go-nat-pmp"))
+    (synopsis "Port mapping and discovery of external IP address")
+    (description "This package provides a Go client for the NAT-PMP internet
 protocol for port mapping and discovering the external IP address of a
 firewall.")
-      (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
-      (license asl2.0))))
+    (home-page "https://github.com/jackpal/go-nat-pmp")
+    (license asl2.0)))
 
 (define-public go-github-com-audriusbutkevicius-recli
   (package
@@ -306,32 +316,30 @@ structs in the Go programming language.")
     (license expat)))
 
 (define-public go-github-com-gobwas-glob
-  (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420")
-        (revision "0"))
-    (package
-      (name "go-github-com-gobwas-glob")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/gobwas/glob")
-                       (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))))
-      (build-system go-build-system)
-      (arguments
-        `(#:import-path "github.com/gobwas/glob"))
-      (synopsis "Go globbing library")
-      (description "This package provides a Go implementation of globs.")
-      (home-page "https://github.com/gobwas/glob")
-      (license expat))))
+  (package
+    (name "go-github-com-gobwas-glob")
+    (version "0.2.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/gobwas/glob")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z"))))
+    (build-system go-build-system)
+    (arguments
+      `(#:import-path "github.com/gobwas/glob"))
+    (synopsis "Go globbing library")
+    (description "This package provides a Go implementation of globs.")
+    (home-page "https://github.com/gobwas/glob")
+    (license expat)))
 
 
 (define-public go-github-com-golang-groupcache-lru
-  (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4")
-        (revision "1"))
+  (let ((commit "869f871628b6baa9cfbc11732cdf6546b17c1298")
+        (revision "2"))
     (package
       (name "go-github-com-golang-groupcache-lru")
       (version (git-version "0.0.0" revision commit))
@@ -343,7 +351,7 @@ structs in the Go programming language.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn"))))
+                  "0r4nk8129bvx50qb4xzjaay39b2h6k7cbdqqzdlanmc82ygczsbw"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "github.com/golang/groupcache/lru"
@@ -381,28 +389,26 @@ compression format.")
       (license bsd-3))))
 
 (define-public go-github-com-jackpal-gateway
-  (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006")
-        (revision "0"))
-    (package
-      (name "go-github-com-jackpal-gateway")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/jackpal/gateway")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))))
-      (build-system go-build-system)
-      (arguments
-       `(#:import-path "github.com/jackpal/gateway"))
-      (synopsis "Discover the address of a LAN gateway")
-      (description "@code{gateway} is a Go library for discovering the IP
+  (package
+    (name "go-github-com-jackpal-gateway")
+    (version "1.0.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackpal/gateway")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ird5xmizj632l3dq24s2xgb8w1dn6v8xznlqz252gvngyr2gjl1"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:import-path "github.com/jackpal/gateway"))
+    (synopsis "Discover the address of a LAN gateway")
+    (description "@code{gateway} is a Go library for discovering the IP
 address of the default LAN gateway.")
-      (home-page "https://github.com/jackpal/gateway")
-      (license bsd-3))))
+    (home-page "https://github.com/jackpal/gateway")
+    (license bsd-3)))
 
 (define-public go-github-com-lib-pq
   (package
@@ -432,7 +438,7 @@ database/sql package.")
 (define-public go-github-com-oschwald-geoip2-golang
   (package
     (name "go-github-com-oschwald-geoip2-golang")
-    (version "1.3.0")
+    (version "1.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -441,7 +447,7 @@ database/sql package.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jivzl15jb8n16rm1b2w97kf7vna5dd3kcz865wfi233qay075j2"))))
+                "1jj4rbdpy87rbl79czg5hs5dyn6xlbnk0bnvyzi71dsxan57nixw"))))
     (build-system go-build-system)
     (propagated-inputs
      `(("go-github-com-oschwald-maxminddb-golang"
@@ -457,32 +463,30 @@ GeoLite2 and GeoIP2 databases in Go.")
     (license isc)))
 
 (define-public go-github-com-oschwald-maxminddb-golang
-  (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f")
-        (revision "0"))
-    (package
-      (name "go-github-com-oschwald-maxminddb-golang")
-      (version (git-version "1.2.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/oschwald/maxminddb-golang")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk"))))
-      (build-system go-build-system)
-      (propagated-inputs
-       `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
-      (arguments
-       `(#:import-path "github.com/oschwald/maxminddb-golang"
-         #:tests? #f)) ; Requires some unpackaged software and test data
-      (synopsis "MaxMind DB Reader for Go")
-      (description "This is a Go reader for the MaxMind DB format.  Although
+  (package
+    (name "go-github-com-oschwald-maxminddb-golang")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/oschwald/maxminddb-golang")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "100wd5qv00pkcm6cb8c4x5gavc9jnn7drh6xrqh85hzci4rils66"))))
+    (build-system go-build-system)
+    (propagated-inputs
+     `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+    (arguments
+     `(#:import-path "github.com/oschwald/maxminddb-golang"
+       #:tests? #f)) ; Requires some unpackaged software and test data
+    (synopsis "MaxMind DB Reader for Go")
+    (description "This is a Go reader for the MaxMind DB format.  Although
 this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
 higher-level API for doing so.")
-      (home-page "https://github.com/oschwald/maxminddb-golang")
-      (license isc))))
+    (home-page "https://github.com/oschwald/maxminddb-golang")
+    (license isc)))
 
 (define-public go-github-com-stathat-go
   (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
@@ -508,8 +512,8 @@ higher-level API for doing so.")
       (license expat))))
 
 (define-public go-github-com-rcrowley-go-metrics
-  (let ((commit "e181e095bae94582363434144c61a9653aff6e50")
-        (revision "1"))
+  (let ((commit "cac0b30c2563378d434b5af411844adff8e32960")
+        (revision "2"))
     (package
       (name "go-github-com-rcrowley-go-metrics")
       (version (git-version "0.0.0" revision commit))
@@ -521,7 +525,7 @@ higher-level API for doing so.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w"))))
+                  "1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "github.com/rcrowley/go-metrics"))
@@ -558,8 +562,8 @@ run-time in Go.")
     (license asl2.0)))
 
 (define-public go-github-com-syndtr-goleveldb
-  (let ((commit "c3a204f8e96543bb0cc090385c001078f184fc46")
-        (revision "3"))
+  (let ((commit "758128399b1df3a87e92df6c26c1d2063da8fabe")
+        (revision "4"))
     (package
       (name "go-github-com-syndtr-goleveldb")
       (version (git-version "1.0.1" revision commit))
@@ -571,7 +575,7 @@ run-time in Go.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "18cac90dim2z5g28vazzibxa058q2ynihsmf0vbscwzba6l5s5ms"))))
+                  "0mnkzrz4di13g6ggd54my7bkb9nwk8f5k672dyasn467wsg7bf8f"))))
       (build-system go-build-system)
       (propagated-inputs
        `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
@@ -668,8 +672,8 @@ hashes.")
       (license expat))))
 
 (define-public go-github-com-petermattis-goid
-  (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
-        (revision "0"))
+  (let ((commit "b0b1615b78e5ee59739545bb38426383b2cda4c9")
+        (revision "1"))
     (package
       (name "go-github-com-petermattis-goid")
       (version (git-version "0.0.0" revision commit))
@@ -680,9 +684,8 @@ hashes.")
                        (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
-
                  (base32
-                  "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
+                  "0ghfxn045r0bbn2vszw897lxzmhnm4k59aypjvpxl0pbzsw9ab2c"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/petermattis/goid"))
@@ -693,8 +696,8 @@ the current goroutine's ID.")
       (license asl2.0))))
 
 (define-public go-github-com-kballard-go-shellquote
-  (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
-        (revision "0"))
+  (let ((commit "95032a82bc518f77982ea72343cc1ade730072f0")
+        (revision "1"))
     (package
       (name "go-github-com-kballard-go-shellquote")
       (version (git-version "0.0.0" revision commit))
@@ -706,7 +709,7 @@ the current goroutine's ID.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
+                  "1rspvmnsikdq95jmx3dykxd4k1rmgl98ryjrysvl0cf18hl1vq80"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/kballard/go-shellquote"))
@@ -768,34 +771,9 @@ bounds.")
       (home-page "https://github.com/beorn7/perks")
       (license expat))))
 
-(define-public go-github-com-golang-protobuf-proto
-    (package
-      (name "go-github-com-golang-protobuf-proto")
-      (version "1.3.1")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/golang/protobuf.git")
-                       (commit (string-append "v" version))))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/golang/protobuf/proto"
-         #:unpack-path "github.com/golang/protobuf"
-         #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup
-         ))
-      (synopsis "Go support for Protocol Buffers")
-      (description "This package provides Go support for the Protocol Buffers
-data serialization format.")
-      (home-page "https://github.com/golang/protobuf")
-      (license bsd-3)))
-
 (define-public go-github-com-prometheus-client-model
-  (let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8")
-        (revision "1"))
+  (let ((commit "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016")
+        (revision "2"))
     (package
       (name "go-github-com-prometheus-client-model")
       (version (git-version "0.0.2" revision commit))
@@ -807,7 +785,7 @@ data serialization format.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"))))
+                  "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/prometheus/client_model"
@@ -901,7 +879,7 @@ Prometheus metrics.")
 (define-public go-github-com-prometheus-procfs
     (package
       (name "go-github-com-prometheus-procfs")
-      (version "0.0.3")
+      (version "0.0.4")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -910,7 +888,7 @@ Prometheus metrics.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y"))))
+                  "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/prometheus/procfs"
@@ -926,7 +904,7 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
 (define-public go-github-com-prometheus-client-golang
     (package
       (name "go-github-com-prometheus-client-golang")
-      (version "0.9.4")
+      (version "1.2.1")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -935,7 +913,7 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
+                  "0zs49psk23n9z8wrl02d5vib5wclpym8kaxcy6n5pk696i419065"))))
       (build-system go-build-system)
       (arguments
        '(#:tests? #f
@@ -953,7 +931,8 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
           ,go-github-com-prometheus-client-model)
          ("go-github-com-prometheus-common"
           ,go-github-com-prometheus-common)
-         ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
+         ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
+         ("go-github-com-cespare-xxhash" ,go-github-com-cespare-xxhash)))
       (synopsis "HTTP server and client tools for Prometheus")
       (description "This package @code{promhttp} provides HTTP client and
 server tools for Prometheus metrics.")
@@ -963,7 +942,7 @@ server tools for Prometheus metrics.")
 (define-public go-gopkg.in-asn1-ber.v1
   (package
     (name "go-gopkg.in-asn1-ber.v1")
-    (version "1.2")
+    (version "1.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -972,7 +951,7 @@ server tools for Prometheus metrics.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1y8bvzbxpw0lfnn7pbcdwzqj4l90qj6xf88dvv9pxd9yl5g6cskx"))))
+                "00ixms8x3lrhywbvq5v2sagcqsxa1pcnlk17dp5lnwckv3xg4psb"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "gopkg.in/asn1-ber.v1"
@@ -1089,3 +1068,25 @@ virtual connections from a single physical connection.")
 and RFC 5389).")
       (home-page "https://github.com/ccding/go-stun")
       (license asl2.0))))
+
+(define-public go-github-com-cespare-xxhash
+  (package
+    (name "go-github-com-cespare-xxhash")
+    (version "2.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/cespare/xxhash")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12ad3z7ki9j07c4kx3ywkl6188i2afsjg7sl60wd21p6zkkpfjxq"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/cespare/xxhash"))
+    (synopsis "Go implementation of xxHash")
+    (description "This package provides of Go implementation of the 64-bit
+xxHash algorithm (XXH64).")
+    (home-page "https://github.com/cespare/xxhash/")
+    (license expat)))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index dae14aee8f..8773f1969f 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -935,7 +935,7 @@ tmux.")
 (define-public kitty
   (package
     (name "kitty")
-    (version "0.14.6")
+    (version "0.16.0")
     (home-page "https://sw.kovidgoyal.net/kitty/")
     (source
      (origin
@@ -945,7 +945,7 @@ tmux.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rb5ys9xsdhd2qa3kz5gqzz111c6b14za98va6hlglk69wqlmb51"))
+        (base32 "1bszyddar0g1gdz67h8rd3gbrdhi6ahjg7j14cjiqxm1938z9ajf"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 5d49d5d83d..9a35e7edce 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2017, 2018 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2017, 2018, 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2017 Feng Shu <tumashu@163.com>
 ;;; Copyright © 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
@@ -416,7 +416,7 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
 (define-public ghostwriter
   (package
     (name "ghostwriter")
-    (version "1.7.4")
+    (version "1.8.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -425,7 +425,7 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1pqlr08z5syqcq5p282asxwzrrm7c1w94baxyb467swh8yp3fj5m"))))
+                "13yn82m1l2pq93wbl569a2lzpc3sn8a8g30hsgdch1l9xlmhwran"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -433,9 +433,13 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
     (inputs
      `(("hunspell" ,hunspell)
        ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
+       ("qtquickcontrols" ,qtquickcontrols)
        ("qtsvg" ,qtsvg)
-       ("qtwebkit" ,qtwebkit)))
+       ("qtwebchannel" ,qtwebchannel)))
+    (propagated-inputs                  ; To get native-search-path
+     `(("qtwebengine" ,qtwebengine)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index c7fb38f468..f1d3f94458 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -985,8 +985,8 @@ relatively simple Bash script.")
     (license license:expat)))
 
 (define-public go-github-com-certifi-gocertifi
-  (let ((commit "d2eda712971317d7dd278bc2a52acda7e945f97e")
-        (revision "0"))
+  (let ((commit "a5e0173ced670013bfb649c7e806bc9529c986ec")
+        (revision "1"))
     (package
       (name "go-github-com-certifi-gocertifi")
       (version (git-version "2018.01.18" revision commit))
@@ -998,7 +998,7 @@ relatively simple Bash script.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0f3v26xps7gadw4qfmh1kxbpgp0cgqdd61a257xnnvnd7ll6k8dh"))))
+                  "1n9drccl3q1rr8wg3nf60slkf1lgsmz5ahifrglbdrc6har3rryj"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/certifi/gocertifi"))
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 19d4d670c6..d0b8dd6af4 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
@@ -50,14 +50,14 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.2.5")
+    (version "0.4.2.6")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "1hnqg6psf7shcmlvfk44mkpaz7v66mify3cnx7mzl23q5s37anad"))))
+               "1i766s211nrbjvwvkd2375mjsbbc28yrg46564rbx6w46cj10005"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 3333cd5778..e90b8b8da2 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2020 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -625,7 +626,7 @@ write native speed custom Git applications in any language with bindings.")
 (define-public git-crypt
   (package
     (name "git-crypt")
-    (version "0.5.0")
+    (version "0.6.0")
     (source
      (origin
        (method git-fetch)
@@ -634,25 +635,38 @@ write native speed custom Git applications in any language with bindings.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1x9209n3k49k998saadr2d0lmvs01smjinx7gzzyjdwj9l904sii"))))
+        (base32 "1ba5s0fvmd9hhnfhfsjrm40v0qpxfnwc8vmm55m0k4dryzkzx66q"))))
     (build-system gnu-build-system)
     (inputs
      `(("git" ,git)
        ("openssl" ,openssl)))
+    (native-inputs
+     `(("docbook-xsl" ,docbook-xsl)
+       ("libxslt" ,libxslt)))
     (arguments
      `(#:tests? #f ; No tests.
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
+         (add-after 'unpack 'patch-makefile
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/manpages/docbook.xsl")))
+             #t))
          (replace 'build
            (lambda _
-             (invoke "make")))
+             (invoke "make" "ENABLE_MAN=yes")))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (invoke "make" "install"
+                       "ENABLE_MAN=yes"
                        (string-append "PREFIX=" out))))))))
-    (home-page "https://www.agwa.name/projects/git-crypt")
+    (home-page "https://www.agwa.name/projects/git-crypt/")
     (synopsis "Transparent encryption of files in a git repository")
     (description "git-crypt enables transparent encryption and decryption of
 files in a git repository.  Files which you choose to protect are encrypted when
@@ -1038,16 +1052,16 @@ will work.")
     (name "git-flow")
     ;; This version has not be officially released yet, so we build it
     ;; directly from the git repository.
-    (version "0.4.2-pre")
+    (version "1.12.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/nvie/gitflow/")
-                    (commit "15aab26490facf285acef56cb5d61025eacb3a69")))
+                    (url "https://github.com/petervanderdoes/gitflow-avh/")
+                    (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx"))))
+                "13q4mnrxr03wz2dkhzy73j384g299m4d545cnhxcaznvdwfany4h"))))
     (build-system gnu-build-system)
     (inputs `(("shflags" ,shflags)))
     (arguments
@@ -1447,7 +1461,9 @@ following features:
                "19zc215mhpnm92mlyl5jbv57r5zqp6cavr3s2g9yglp6j4kfgj0q"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     '(#:parallel-tests? #f             ; TODO Seems to cause test failures on
+                                        ; i686-linux
+       #:phases
        (modify-phases %standard-phases
          (add-after 'configure 'patch-libtool-wrapper-ls
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1465,6 +1481,12 @@ following features:
              (substitute* "subversion/tests/libsvn_repos/repos-test.c"
                (("#!/bin/sh") (string-append "#!" (which "sh"))))
              #t))
+         (add-before 'check 'set-PARALLEL
+           (lambda* (#:key parallel-tests? #:allow-other-keys)
+             (if parallel-tests?
+                 (setenv "PARALLEL" (number->string (parallel-job-count)))
+                 (simple-format #t "parallel-tests? are disabled\n"))
+             #t))
          (add-after 'install 'install-perl-bindings
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Follow the instructions from 'subversion/bindings/swig/INSTALL'.
@@ -2150,7 +2172,7 @@ be served with a HTTP file server of your choice.")
 (define-public gource
   (package
     (name "gource")
-    (version "0.49")
+    (version "0.51")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2158,7 +2180,7 @@ be served with a HTTP file server of your choice.")
                     "/gource-" version "/gource-" version ".tar.gz"))
               (sha256
                (base32
-                "12hf5ipcsp9dxsqn84n4kr63xaiskrnf5a084wr29qk171lj7pd9"))))
+                "16p7b1x4r0915w883lp374jcdqqja37fnb7m8vnsfnl2n64gi8qr"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2177,7 +2199,7 @@ be served with a HTTP file server of your choice.")
        ("mesa"      ,mesa)
        ("pcre"      ,pcre)
        ("sdl-union" ,(sdl-union (list sdl2 sdl2-image)))))
-    (home-page "http://gource.io/")
+    (home-page "https://gource.io/")
     (synopsis "3D visualisation tool for source control repositories")
     (description "@code{gource} provides a software version control
 visualization.  The repository is displayed as a tree where the root of the
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d4a48bb503..cf767f43bf 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -36,6 +36,7 @@
 ;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
 ;;; Copyright © 2019 Riku Viitanen <riku.viitanen@protonmail.com>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1728,7 +1729,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
 (define-public youtube-viewer
   (package
     (name "youtube-viewer")
-    (version "3.7.0")
+    (version "3.7.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1737,7 +1738,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1h0m8rn7najdrzvg5md9albiax287273b40ncrihh9amsvvb47c9"))))
+                "1plsm1sc04lwlg5h2gapxpykc3cpd4frjll14lamql89dm4a50vi"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
@@ -2182,14 +2183,14 @@ and custom quantization matrices.")
 (define-public streamlink
   (package
     (name "streamlink")
-    (version "1.3.0")
+    (version "1.3.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "streamlink" version))
         (sha256
          (base32
-          "0593ffjpz82jrljnzxfafkcmcqad3r1ijjan0hm04xjcnxc9cr00"))))
+          "0cnlg3ra3g6dml4xfy9ysy9b4qwyn458fadd8ac44cfwi3v4gq6y"))))
     (build-system python-build-system)
     (home-page "https://github.com/streamlink/streamlink")
     (native-inputs
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index f130ae4392..1d4a7a3f94 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
 ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2019 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -68,7 +68,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "8.2.0069")
+    (version "8.2.0236")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -77,7 +77,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0kxzfcpv96s1lbx97g6451p1i7yanws5bvzl05jh1ywaqv5f4y7g"))))
+               "0ixwr7kkxc1cj837v1bbgghkd68gbynfn7pc4rb87ah9sm6bgaz3"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -189,9 +189,20 @@ with the editor vim.")))
              "--enable-xim"
              "--disable-selinux"
              "--enable-gui")
+       ;; This flag fixes the following error:
+       ;; .../libpython3.7m.a(pyexpat.o): undefined reference to symbol 'XML_FreeContentModel'
+       ;; .../libexpat.so.1: error adding symbols: DSO missing from command line
+       #:make-flags '("LDFLAGS=-lexpat")
        ,@(substitute-keyword-arguments (package-arguments vim)
            ((#:phases phases)
             `(modify-phases ,phases
+               (add-before 'check 'skip-previewpopup
+                 ;; This test fails when the path to the source is long. See:
+                 ;; https://github.com/vim/vim/issues/5615
+                 (lambda _
+                   (substitute* "src/testdir/test_popupwin.vim"
+                     ((".*Test_previewpopup.*" line)
+                      (string-append line "return\n")))))
                (add-before 'check 'skip-test87
                  ;; This test fails for unknown reasons after switching
                  ;; to a git checkout.
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index 1983b65e51..8778e5e17a 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -511,8 +511,7 @@ features for productive professionals.")
        #:asd-system-name "next/hooks"))
     (inputs
      `(("alexandria" ,sbcl-alexandria)
-       ("serapeum" ,sbcl-serapeum)
-       ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras)))
+       ("serapeum" ,sbcl-serapeum)))
     (native-inputs
      `(("trivial-features" ,sbcl-trivial-features)
        ("prove-asdf" ,sbcl-prove-asdf)))
@@ -592,7 +591,6 @@ features for productive professionals.")
          ("closer-mop" ,sbcl-closer-mop)
          ("dbus" ,cl-dbus)
          ("dexador" ,sbcl-dexador)
-         ("fare-quasiquote-extras" ,cl-fare-quasiquote-extras) ; For serapeum.  Guix bug?
          ("ironclad" ,sbcl-ironclad)
          ("local-time" ,sbcl-local-time)
          ("log4cl" ,sbcl-log4cl)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index cd83613c6e..0b1a3a6135 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
@@ -34,11 +34,13 @@
 ;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,6 +93,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages gcc)
@@ -4831,6 +4834,46 @@ developed as part of the Netsurf project.")
 written in C.  It is developed as part of the NetSurf project.")
     (license license:expat)))
 
+(define-public libcyaml
+  (package
+    (name "libcyaml")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/tlsa/libcyaml.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0h5ydyqdl8kzh526np3jsi0pm7ks16nh1hjkdsjcd6pacw7y6i6z"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "CC=gcc"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (replace 'check
+           (lambda _
+             (setenv "CC" "gcc")
+             (invoke "make" "test"))))))
+    (inputs
+     `(("libyaml" ,libyaml)))
+    (native-inputs
+     `(("git", git)
+       ("pkg-config", pkg-config)))
+    (synopsis "C library for reading and writing YAML")
+    (description
+     "LibCYAML is a C library written in ISO C11 for reading and writing
+structured YAML documents.  The fundamental idea behind CYAML is to allow
+applications to construct schemas which describe both the permissible
+structure of the YAML documents to read/write, and the C data structure(s)
+in which the loaded data is arranged in memory.")
+    (home-page "https://github.com/tlsa/libcyaml")
+    (license license:isc)))
+
 (define-public libdom
   (package
     (name "libdom")
@@ -5156,7 +5199,7 @@ w3c webidl files and a binding configuration file.")
                (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
                           desktop)
                (substitute* desktop
-                 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk"))
+                 (("netsurf-gtk") (string-append out "/bin/netsurf-gtk3"))
                  (("netsurf.png") (string-append out "/share/netsurf/"
                                                  "netsurf.xpm")))
                (install-file "docs/netsurf-gtk.1"
@@ -5367,13 +5410,13 @@ deployments.")
   (package
     (name "varnish")
     (home-page "https://varnish-cache.org/")
-    (version "6.3.1")
+    (version "6.3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
               (sha256
                (base32
-                "0xa14pd68zpi5hxcax3arl14rcmh5d1cdwa8gv4l5f23mmynr8ni"))))
+                "1f5ahzdh3am6fij5jhiybv3knwl11rhc5r3ig1ybzw55ai7788q8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
@@ -5666,7 +5709,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
 (define-public http-parser
   (package
     (name "http-parser")
-    (version "2.9.2")
+    (version "2.9.3")
     (home-page "https://github.com/nodejs/http-parser")
     (source (origin
               (method git-fetch)
@@ -5675,7 +5718,7 @@ into your tests.  It automatically starts up a HTTP server in a separate thread
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qs6x3n2nrcj1wiik5pg5i16inykf7rcfdfdy7rwyzf40pvdl3c2"))))
+                "189zi61vczqgmqjd2myjcjbbi5icrk7ccs0kn6nj8hxqiv5j3811"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -6865,14 +6908,13 @@ features include:
                 "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
     (build-system trivial-build-system)
     (arguments
-     `(#:modules ((guix build utils)
-                  (srfi srfi-1)
-                  (srfi srfi-26))
+     `(#:modules ((guix build utils))
        #:builder
        (begin
          (use-modules (guix build utils)
                       (srfi srfi-1)
                       (srfi srfi-26))
+
          (let ((source (assoc-ref %build-inputs "source"))
                (php-dir (string-append %output "/share/web/" ,name "/")))
            ;; The cache directory must not be in the store, but in a writable
@@ -7178,3 +7220,44 @@ of the DOM tree
     (license (list license:lgpl2.0
                    license:gpl2
                    license:asl2.0))))
+
+(define-public librocket
+  (package
+    (name "librocket")
+    (version "1.3.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/libRocket/libRocket")
+         (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1n6gq007vqijyfasfnfg6c8d2rc9qarl4bhzbgkz062m4h5izlfs"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "Build"))))))
+    (inputs
+     `(("freetype" ,freetype)))
+    (home-page "https://github.com/libRocket/libRocket") ; http://librocket.com/ is down.
+    (synopsis "HTML/CSS user interface library")
+    (description "libRocket is a C++ user interface package based on the HTML
+and CSS standards.  libRocket uses the open standards XHTML1.0 and
+CSS2.0 (while borrowing features from HTML5 and CSS3), and extends them with
+features suited towards real-time applications.  It is designed as a complete
+solution for any project's interface needs:
+
+@itemize
+@item Dynamic layout system.
+@item Efficient application-wide styling, with a custom-built templating engine.
+@item Fully featured control set: buttons, sliders, drop-downs, etc.
+@item Runtime visual debugging suite.
+@item Easily integrated and extensible with Python or Lua scripting.
+@end itemize\n")
+    (license license:expat)))
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index aeead92871..e138817fb6 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -93,14 +93,14 @@ backend which implements them.")
 (define-public wpebackend-fdo
   (package
     (name "wpebackend-fdo")
-    (version "1.4.0")
+    (version "1.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wpewebkit.org/releases/"
                                   "wpebackend-fdo-" version ".tar.xz"))
               (sha256
                (base32
-                "1bwbs47v4nlzhsqrw9fpyny5m3n9ry0kfzsvk90zjif4bd5cl6d9"))))
+                "1799vf6wc78z15l39sfh39l5rrvlqpi29ynjm0324rpsrfvs0jb2"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests
@@ -121,14 +121,14 @@ engine that uses Wayland for graphics output.")
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.26.3")
+    (version "2.26.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "04g6y0sv04d20bw401myq3k828ikysjhx383ly81vh9wji9i3mdd"))))
+                "0gqi9f9njrdn8vad1zvr59b25arwc8r0n8bp25sgkbfz2c3r11j3"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc"))
     (arguments
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index f5b879ae36..23850e2df8 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -554,7 +554,7 @@ version)")
   ;; This package provides 32-bit dxvk libraries on 64-bit systems.
   (package
     (name "dxvk32")
-    (version "1.5")
+    (version "1.5.4")
     (home-page "https://github.com/doitsujin/dxvk/")
     (source (origin
               (method git-fetch)
@@ -564,7 +564,7 @@ version)")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "009p99jkskrmy186gsqrf0p3v9z3lskw51r4vdp35af057q26a6x"))))
+                "0yhxd5rnn5mcvcb2n062z9wqqwxjq5c0rzfbjz1z9ppznj8gn37i"))))
     (build-system meson-build-system)
     (arguments
      `(#:system "i686-linux"
@@ -633,6 +633,5 @@ Use @command{setup_dxvk} to install the required libraries to a Wine prefix.")
        ,@(match (%current-system)
            ("x86_64-linux"
             `(("dxvk32" ,dxvk32)))
-           (_ '()))
-       ))
+           (_ '()))))
     (supported-systems '("i686-linux" "x86_64-linux"))))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 52d7042806..d79af78db2 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -31,6 +31,8 @@
 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019 Noodles! <nnoodle@chiru.no>
 ;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -95,10 +97,10 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages serialization)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
-  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
@@ -868,89 +870,108 @@ experience.")
 (define-public awesome
   (package
     (name "awesome")
-    (version "4.2")
+    (version "4.3")
     (source
-     (origin (method url-fetch)
-             (uri (string-append
-                   "https://github.com/awesomeWM/awesome-releases/raw/"
-                   "master/awesome-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0kwpbls9h1alxcmvxh5g9qb995fds5b2ngcr44w0ibazkyls2pdc"))
-             (modules '((guix build utils)
-                        (srfi srfi-19)))
-             (snippet '(begin
-                         ;; Remove non-reproducible timestamp and use the date
-                         ;; of the source file instead.
-                         (substitute* "common/version.c"
-                           (("__DATE__ \" \" __TIME__")
-                            (date->string
-                             (time-utc->date
-                              (make-time time-utc 0
-                                         (stat:mtime (stat "awesome.c"))))
-                             "\"~c\"")))
-                         #t))
-             (patches (search-patches "awesome-reproducible-png.patch"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/awesomeWM/awesome-releases/raw/master/"
+             "awesome-" version ".tar.xz"))
+       (sha256
+        (base32 "0lqpw401mkkmp9wgbvrmm45bqq2j9357l4irwdqv6l1305pls9kq"))
+       (modules '((guix build utils)
+                  (srfi srfi-19)))
+       (snippet
+        '(begin
+           ;; Remove non-reproducible timestamp and use the date of
+           ;; the source file instead.
+           (substitute* "common/version.c"
+             (("__DATE__ \" \" __TIME__")
+              (date->string
+               (time-utc->date
+                (make-time time-utc 0 (stat:mtime (stat "awesome.c"))))
+               "\"~c\"")))
+           #t))
+       (patches
+        (search-patches "awesome-reproducible-png.patch"))))
     (build-system cmake-build-system)
-    (native-inputs `(("asciidoc" ,asciidoc)
-                     ("docbook-xsl" ,docbook-xsl)
-                     ("doxygen" ,doxygen)
-                     ("gperf" ,gperf)
-                     ("imagemagick" ,imagemagick)
-                     ("libxml2" ,libxml2)         ;for XML_CATALOG_FILES
-                     ("pkg-config" ,pkg-config)
-                     ("xmlto" ,xmlto)))
-    (inputs `(("cairo" ,cairo)
-              ("dbus" ,dbus)
-              ("gdk-pixbuf" ,gdk-pixbuf)
-              ("glib" ,glib)
-              ("gobject-introspection" ,gobject-introspection)
-              ("imlib2" ,imlib2)
-              ("libev" ,libev)
-              ("libxcb" ,libxcb)
-              ("libxcursor" ,libxcursor)
-              ("libxdg-basedir" ,libxdg-basedir)
-              ("libxkbcommon" ,libxkbcommon)
-              ("lua" ,lua)
-              ("lua-lgi" ,lua-lgi)
-              ("pango" ,pango)
-              ("startup-notification" ,startup-notification)
-              ("xcb-util" ,xcb-util)
-              ("xcb-util-cursor" ,xcb-util-cursor)
-              ("xcb-util-image" ,xcb-util-image)
-              ("xcb-util-keysyms" ,xcb-util-keysyms)
-              ("xcb-util-renderutil" ,xcb-util-renderutil)
-              ("xcb-util-xrm" ,xcb-util-xrm)
-              ("xcb-util-wm" ,xcb-util-wm)))
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xsl" ,docbook-xsl)
+       ("doxygen" ,doxygen)
+       ("gperf" ,gperf)
+       ("imagemagick" ,imagemagick)
+       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
+       ("lua-ldoc" ,lua-ldoc)
+       ("pkg-config" ,pkg-config)
+       ("xmlto" ,xmlto)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dbus" ,dbus)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)
+       ("imlib2" ,imlib2)
+       ("libev" ,libev)
+       ("libxcb" ,libxcb)
+       ("libxcursor" ,libxcursor)
+       ("libxdg-basedir" ,libxdg-basedir)
+       ("libxkbcommon" ,libxkbcommon)
+       ("lua" ,lua)
+       ("lua-lgi" ,lua-lgi)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-cursor" ,xcb-util-cursor)
+       ("xcb-util-image" ,xcb-util-image)
+       ("xcb-util-keysyms" ,xcb-util-keysyms)
+       ("xcb-util-renderutil" ,xcb-util-renderutil)
+       ("xcb-util-xrm" ,xcb-util-xrm)
+       ("xcb-util-wm" ,xcb-util-wm)))
     (arguments
-     `(;; Let compression happen in our 'compress-documentation' phase so that
-       ;; '--no-name' is used, which removes timestamps from gzip output.
-       #:configure-flags '("-DCOMPRESS_MANPAGES=off")
-
-       ;; Building awesome in its source dir is no longer supported.
+     `(#:modules ((guix build cmake-build-system)
+                  (guix build utils)
+                  (ice-9 match))
+       ;; Let compression happen in our 'compress-documentation' phase
+       ;; so that '--no-name' is used, which removes timestamps from
+       ;; gzip output.
+       #:configure-flags
+       '("-DCOMPRESS_MANPAGES=off")
+       ;; Building awesome in its source directory is no longer
+       ;; supported.
        #:out-of-source? #t
-
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'xmlto-skip-validation
-           (lambda _
-             ;; We can't download the necessary schema, so so skip
-             ;; validation and assume they're valid.
-             (substitute* "../build/CMakeFiles/man.dir/build.make"
-               (("/xmlto")
-                (string-append "/xmlto --skip-validation")))
-             #t))
-         (add-before 'configure 'set-lua-paths
+         (add-before 'configure 'set-paths
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; The build process needs to load cairo dynamically.
-             (let* ((cairo (string-append
-                             (assoc-ref inputs "cairo") "/lib" ))
-                    (lua-lgi (assoc-ref inputs "lua-lgi") ))
-               (setenv "LD_LIBRARY_PATH" cairo )
-               (setenv "LUA_PATH" (string-append lua-lgi
-                                                 "/share/lua/5.2/?.lua"))
-               (setenv "LUA_CPATH" (string-append lua-lgi
-                                                  "/lib/lua/5.2/?.so"))
+             ;; The build process needs to load Cairo dynamically.
+             (let* ((cairo (string-append (assoc-ref inputs "cairo") "/lib"))
+                    (lua-version ,(version-major+minor (package-version lua)))
+                    (lua-dependencies
+                     (filter (match-lambda
+                               ((label . _) (string-prefix? "lua-" label)))
+                             inputs))
+                    (lua-path
+                     (string-join
+                      (map (match-lambda
+                             ((_ . dir)
+                              (string-append
+                               dir "/share/lua/" lua-version "/?.lua;"
+                               dir "/share/lua/" lua-version "/?/?.lua")))
+                           lua-dependencies)
+                      ";"))
+                    (lua-cpath
+                     (string-join
+                      (map (match-lambda
+                             ((_ . dir)
+                              (string-append
+                               dir "/lib/lua/" lua-version "/?.so;"
+                               dir "/lib/lua/" lua-version "/?/?.so")))
+                           lua-dependencies)
+                      ";")))
+               (setenv "LD_LIBRARY_PATH" cairo)
+               (setenv "LUA_PATH" (string-append "?.lua;" lua-path))
+               (setenv "LUA_CPATH" lua-cpath)
                #t)))
          (replace 'check
            (lambda _
@@ -967,22 +988,23 @@ experience.")
          (add-after 'install 'wrap
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((awesome (assoc-ref outputs "out"))
-                    (cairo (string-append
-                             (assoc-ref inputs "cairo") "/lib" ))
-                    (lua-lgi (assoc-ref inputs "lua-lgi") ))
+                    (cairo (string-append (assoc-ref inputs "cairo") "/lib"))
+                    (lua-version ,(version-major+minor (package-version lua)))
+                    (lua-lgi (assoc-ref inputs "lua-lgi")))
                (wrap-program (string-append awesome "/bin/awesome")
+                 `("LUA_PATH" suffix
+                   (,(format #f "~a/share/lua/~a/?.lua" lua-lgi lua-version)))
+                 `("LUA_CPATH" suffix
+                   (,(format #f "~a/lib/lua/~a/?.so" lua-lgi lua-version)))
                  `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
-                 `("LD_LIBRARY_PATH" suffix (, cairo))
-                 `("LUA_PATH" suffix (,(string-append lua-lgi
-                                                      "/share/lua/5.2/?.lua")))
-                 `("LUA_CPATH" suffix (,(string-append
-                                          lua-lgi "/lib/lua/5.2/?.so"))))))))))
+                 `("LD_LIBRARY_PATH" suffix (,cairo)))
+               #t))))))
+    (home-page "https://awesomewm.org/")
     (synopsis "Highly configurable window manager")
     (description
      "Awesome has been designed as a framework window manager.  It is fast, small,
 dynamic and extensible using the Lua programming language.")
-    (license license:gpl2+)
-    (home-page "https://awesomewm.org/")))
+    (license license:gpl2+)))
 
 (define-public menumaker
   (package
@@ -1272,6 +1294,9 @@ its size
        ("xcb-util-xrm" ,xcb-util-xrm)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("python-sphinx" ,python-sphinx) ; for the manual
+       ;; XXX: "python" input must be located after "python-2", or the package
+       ;; fails to build with "missing required python module: xcbgen".
        ("python-2" ,python-2)           ; lib/xpp depends on python 2
        ("python" ,python)))             ; xcb-proto depends on python 3
     (home-page "https://polybar.github.io/")
@@ -1367,8 +1392,7 @@ modules for building a Wayland compositor.")
               ("swaybg" ,swaybg)
               ("wayland" ,wayland)
               ("wlroots" ,wlroots)))
-    (native-inputs `(("git" ,git)
-                     ("libcap" ,libcap)
+    (native-inputs `(("libcap" ,libcap)
                      ("linux-pam" ,linux-pam)
                      ("mesa" ,mesa)
                      ("pkg-config" ,pkg-config)
@@ -1424,8 +1448,7 @@ modules for building a Wayland compositor.")
               ("libxkbcommon" ,libxkbcommon)
               ;("linux-pam" ,linux-pam) ; FIXME: Doesn't work.
               ("wayland" ,wayland)))
-    (native-inputs `(("git" ,git)
-                     ("pango" ,pango)
+    (native-inputs `(("pango" ,pango)
                      ("pkg-config" ,pkg-config)
                      ("scdoc" ,scdoc)
                      ("wayland-protocols" ,wayland-protocols)))
@@ -1451,8 +1474,7 @@ modules for building a Wayland compositor.")
     (inputs `(("cairo" ,cairo)
               ("gdk-pixbuf" ,gdk-pixbuf)
               ("wayland" ,wayland)))
-    (native-inputs `(("git" ,git)
-                     ("pkg-config" ,pkg-config)
+    (native-inputs `(("pkg-config" ,pkg-config)
                      ("scdoc" ,scdoc)
                      ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/swaywm/sway")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 5d8cac61dd..af10d97bf6 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -32,6 +32,7 @@
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -153,58 +154,53 @@ program.")
     (license license:gpl3+)))
 
 (define-public autorandr
-  ;; Use latest commit since 1.7 lacks many new features such as the
-  ;; autorandr_launcher.
-  (let ((commit "b484c0ea9c9a4838278bbd661a7cc384333c1df8"))
-    (package
-      (name "autorandr")
-      (version (git-version "1.7" "1" commit))
-      (home-page "https://github.com/phillipberndt/autorandr")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url home-page)
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0da17kzsisjv3s993j5idkk1n2d2cvjdn7pngs2b0ic1r2h5z02h"))))
-      (build-system python-build-system)
-      (native-inputs
-       `(("man-db" ,man-db)))
-      (inputs
-       `(("xrandr" ,xrandr)
-         ("libxcb" ,libxcb)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-before 'build 'configure
-             (lambda* (#:key inputs #:allow-other-keys)
+  (package
+    (name "autorandr")
+    (version "1.9")
+    (home-page "https://github.com/phillipberndt/autorandr")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bb0l7fcm5lcx9y02zdxv7pfdqf4v4gsc5br3v1x9gzjvqj64l7n"))))
+    (build-system python-build-system)
+    (inputs
+     `(("xrandr" ,xrandr)
+       ("libxcb" ,libxcb)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((xrandr (string-append (assoc-ref inputs "xrandr")
+                                          "/bin/xrandr")))
+               (substitute* "contrib/etc/xdg/autostart/autorandr.desktop"
+                 (("/usr") (assoc-ref outputs "out")))
                (substitute* "autorandr.py"
-                 (("popen\\(\"xrandr") (string-append "popen(\""
-                                                      (assoc-ref inputs "xrandr")
-                                                      "/bin/xrandr"))
-                 (("\\[\"xrandr") (string-append "[\""
-                                                 (assoc-ref inputs "xrandr")
-                                                 "/bin/xrandr")))
-               #t))
-           (add-after 'install 'install-contrib
-             (lambda* (#:key outputs #:allow-other-keys)
-               (invoke "make"
-                       (string-append "DESTDIR=" (assoc-ref outputs "out"))
-                       "PREFIX="
-                       "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
-                       "install_manpage"
-                       "install_bash_completion"
-                       "install_launcher"))))))
-      (synopsis "Auto-detect connected displays and load appropriate setup")
-      (description "Autorandr wraps around xrandr to help with X11
+                 (("popen\\(\"xrandr") (string-append "popen(\"" xrandr))
+                 (("\\[\"xrandr") (string-append "[\"" xrandr))))
+             #t))
+         (add-after 'install 'install-contrib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (invoke "make"
+                     (string-append "DESTDIR=" (assoc-ref outputs "out"))
+                     "PREFIX="
+                     "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
+                     "install_manpage"
+                     "install_bash_completion"
+                     "install_launcher"
+                     "install_autostart_config"))))))
+    (synopsis "Auto-detect connected displays and load appropriate setup")
+    (description "Autorandr wraps around xrandr to help with X11
 multi-screen configuration management.  It allows the user to create profiles
 for various multi-screen setups.  Autorandr automatically detects the profiles
 that can be activated based on the connected hardware.  Hook scripts can be
 used to further tweak the behaviour of the different profiles.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public bemenu
   (package
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 9dcdf38be1..1294d748ac 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1070,7 +1070,7 @@ as expected.")))
   (match-lambda
     (($ <inputattach-configuration> type device baud-rate log-file)
      (let ((args (append (if baud-rate
-                             (list "--baud-rate" (number->string baud-rate))
+                             (list "--baud" (number->string baud-rate))
                              '())
                          (list (string-append "--" type)
                                device))))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 3ac7b7f52c..075140816a 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -1436,6 +1436,10 @@ ALLOWED_HOSTS = [
           allowed-hosts))
 "]
 
+DEFAULT_FROM_EMAIL = '" #$default-from-email "'
+SERVER_EMAIL = DEFAULT_FROM_EMAIL
+NOTIFICATION_FROM_EMAIL = DEFAULT_FROM_EMAIL
+
 ADMINS = [
 " #$(string-concatenate
      (map (match-lambda
diff --git a/gnu/tests/reconfigure.scm b/gnu/tests/reconfigure.scm
index fb11e6164e..8b85920979 100644
--- a/gnu/tests/reconfigure.scm
+++ b/gnu/tests/reconfigure.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index 4bc0156a88..0d15f978cd 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -141,6 +142,10 @@ dependencies, so it should be self-contained."
   ;; Using the current working directory as GOPATH makes it easier for packagers
   ;; who need to manipulate the unpacked source code.
   (setenv "GOPATH" (getcwd))
+  ;; Go 1.13 uses go modules by default. The go build system does not
+  ;; currently support modules, so turn modules off to continue using the old
+  ;; GOPATH behavior.
+  (setenv "GO111MODULE" "off")
   (setenv "GOBIN" (string-append (assoc-ref outputs "out") "/bin"))
   (let ((tmpdir (tmpnam)))
     (match (go-inputs inputs)
diff --git a/guix/git.scm b/guix/git.scm
index a12f1eec8e..b1ce3ea451 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -46,7 +46,9 @@
             git-checkout
             git-checkout?
             git-checkout-url
-            git-checkout-branch))
+            git-checkout-branch
+            git-checkout-commit
+            git-checkout-recursive?))
 
 (define %repository-cache-directory
   (make-parameter (string-append (cache-directory #:ensure? #f)
@@ -108,6 +110,10 @@ the 'SSL_CERT_FILE' and 'SSL_CERT_DIR' environment variables."
                               (string-append "R:" url)
                               url))))))
 
+;; Authentication appeared in Guile-Git 0.3.0, check if it is available.
+(define auth-supported?
+  (false-if-exception (resolve-interface '(git auth))))
+
 (define (clone* url directory)
   "Clone git repository at URL into DIRECTORY.  Upon failure,
 make sure no empty directory is left behind."
@@ -119,7 +125,13 @@ make sure no empty directory is left behind."
       ;; value in Guile-Git: <https://bugs.gnu.org/29238>.
       (if (module-defined? (resolve-interface '(git))
                            'clone-init-options)
-          (clone url directory (clone-init-options))
+          (let ((auth-method (and auth-supported?
+                                  (%make-auth-ssh-agent))))
+            (clone url directory
+                   (if auth-supported?
+                       (make-clone-options
+                        #:fetch-options (make-fetch-options auth-method))
+                       (clone-init-options))))
           (clone url directory)))
     (lambda _
       (false-if-exception (rmdir directory)))))
@@ -281,7 +293,12 @@ When RECURSIVE? is true, check out submodules as well, if any."
      ;; Only fetch remote if it has not been cloned just before.
      (when (and cache-exists?
                 (not (reference-available? repository ref)))
-       (remote-fetch (remote-lookup repository "origin")))
+       (if auth-supported?
+           (let ((auth-method (and auth-supported?
+                                   (%make-auth-ssh-agent))))
+             (remote-fetch (remote-lookup repository "origin")
+                           #:fetch-options (make-fetch-options auth-method)))
+           (remote-fetch (remote-lookup repository "origin"))))
      (when recursive?
        (update-submodules repository #:log-port log-port))
      (let ((oid (switch-to-ref repository canonical-ref)))
diff --git a/guix/import/gem.scm b/guix/import/gem.scm
index 0bf9ff2552..bd5d5b3569 100644
--- a/guix/import/gem.scm
+++ b/guix/import/gem.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,28 +21,68 @@
 
 (define-module (guix import gem)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 pretty-print)
   #:use-module (srfi srfi-1)
-  #:use-module (rnrs bytevectors)
-  #:use-module (json)
-  #:use-module (web uri)
+  #:use-module (guix json)
   #:use-module ((guix download) #:prefix download:)
   #:use-module (guix import utils)
   #:use-module (guix import json)
   #:use-module (guix packages)
   #:use-module (guix upstream)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix base16)
   #:use-module (guix base32)
-  #:use-module (guix build-system ruby)
+  #:use-module ((guix build-system ruby) #:select (rubygems-uri))
   #:export (gem->guix-package
             %gem-updater
             gem-recursive-import))
 
+;; Gems as defined by the API at <https://rubygems.org/api/v1/gems>.
+(define-json-mapping <gem> make-gem gem?
+  json->gem
+  (name          gem-name)                        ;string
+  (platform      gem-platform)                    ;string
+  (version       gem-version)                     ;string
+  (authors       gem-authors)                     ;string
+  (licenses      gem-licenses "licenses"          ;list of strings
+                 (lambda (licenses)
+                   ;; This is sometimes #nil (the JSON 'null' value).  Arrange
+                   ;; to always return a list.
+                   (cond ((not licenses) '())
+                         ((vector? licenses) (vector->list licenses))
+                         (else '()))))
+  (info          gem-info)
+  (sha256        gem-sha256 "sha"                 ;bytevector
+                 base16-string->bytevector)
+  (home-page     gem-home-page "homepage_uri")    ;string
+  (dependencies  gem-dependencies "dependencies"  ;<gem-dependencies>
+                 json->gem-dependencies))
+
+(define-json-mapping <gem-dependencies> make-gem-dependencies
+  gem-dependencies?
+  json->gem-dependencies
+  (development   gem-dependencies-development     ;list of <gem-dependency>
+                 "development"
+                 json->gem-dependency-list)
+  (runtime       gem-dependencies-runtime         ;list of <gem-dependency>
+                 "runtime"
+                 json->gem-dependency-list))
+
+(define (json->gem-dependency-list vector)
+  (if vector
+      (map json->gem-dependency (vector->list vector))
+      '()))
+
+(define-json-mapping <gem-dependency> make-gem-dependency gem-dependency?
+  json->gem-dependency
+  (name          gem-dependency-name)             ;string
+  (requirements  gem-dependency-requirements))    ;string
+
+
 (define (rubygems-fetch name)
-  "Return an alist representation of the RubyGems metadata for the package NAME,
-or #f on failure."
-  (json-fetch
-   (string-append "https://rubygems.org/api/v1/gems/" name ".json")))
+  "Return a <gem> record for the package NAME, or #f on failure."
+  (and=> (json-fetch
+          (string-append "https://rubygems.org/api/v1/gems/" name ".json"))
+         json->gem))
 
 (define (ruby-package-name name)
   "Given the NAME of a package on RubyGems, return a Guix-compliant name for
@@ -50,41 +91,6 @@ the package."
       (snake-case name)
       (string-append "ruby-" (snake-case name))))
 
-(define (hex-string->bytevector str)
-  "Convert the hexadecimal encoded string STR to a bytevector."
-  (define hex-char->int
-    (match-lambda
-     (#\0 0)
-     (#\1 1)
-     (#\2 2)
-     (#\3 3)
-     (#\4 4)
-     (#\5 5)
-     (#\6 6)
-     (#\7 7)
-     (#\8 8)
-     (#\9 9)
-     (#\a 10)
-     (#\b 11)
-     (#\c 12)
-     (#\d 13)
-     (#\e 14)
-     (#\f 15)))
-
-  (define (read-byte i)
-    (let ((j (* 2 i)))
-      (+ (hex-char->int (string-ref str (1+ j)))
-         (* (hex-char->int (string-ref str j)) 16))))
-
-  (let* ((len (/ (string-length str) 2))
-         (bv  (make-bytevector len)))
-    (let loop ((i 0))
-      (if (= i len)
-          bv
-          (begin
-            (bytevector-u8-set! bv i (read-byte i))
-            (loop (1+ i)))))))
-
 (define (make-gem-sexp name version hash home-page synopsis description
                        dependencies licenses)
   "Return the `package' s-expression for a Ruby package with the given NAME,
@@ -97,8 +103,7 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
                (uri (rubygems-uri ,name version))
                (sha256
                 (base32
-                 ,(bytevector->nix-base32-string
-                   (hex-string->bytevector hash))))))
+                 ,(bytevector->nix-base32-string hash)))))
      (build-system ruby-build-system)
      ,@(if (null? dependencies)
            '()
@@ -120,31 +125,25 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES."
 (define* (gem->guix-package package-name #:optional (repo 'rubygems) version)
   "Fetch the metadata for PACKAGE-NAME from rubygems.org, and return the
 `package' s-expression corresponding to that package, or #f on failure."
-  (let ((package (rubygems-fetch package-name)))
-    (and package
-         (let* ((name         (assoc-ref package "name"))
-                (version      (assoc-ref package "version"))
-                (hash         (assoc-ref package "sha"))
-                (synopsis     (assoc-ref package "info")) ; nothing better to use
-                (description  (beautify-description
-                               (assoc-ref package "info")))
-                (home-page    (assoc-ref package "homepage_uri"))
-                (dependencies-names (map (lambda (dep) (assoc-ref dep "name"))
-                                         (vector->list
-                                          (assoc-ref* package
-                                                      "dependencies"
-                                                      "runtime"))))
-                (dependencies (map (lambda (dep)
-                                     (if (string=? dep "bundler")
-                                         "bundler" ; special case, no prefix
-                                         (ruby-package-name dep)))
-                                   dependencies-names))
-                (licenses     (map string->license
-                                   (vector->list
-                                    (assoc-ref package "licenses")))))
-           (values (make-gem-sexp name version hash home-page synopsis
-                                  description dependencies licenses)
-                   dependencies-names)))))
+  (let ((gem (rubygems-fetch package-name)))
+    (if gem
+        (let* ((dependencies-names (map gem-dependency-name
+                                        (gem-dependencies-runtime
+                                         (gem-dependencies gem))))
+               (dependencies (map (lambda (dep)
+                                    (if (string=? dep "bundler")
+                                        "bundler" ; special case, no prefix
+                                        (ruby-package-name dep)))
+                                  dependencies-names))
+               (licenses     (map string->license (gem-licenses gem))))
+          (values (make-gem-sexp (gem-name gem) (gem-version gem)
+                                 (gem-sha256 gem) (gem-home-page gem)
+                                 (gem-info gem)
+                                 (beautify-description (gem-info gem))
+                                 dependencies
+                                 licenses)
+                  dependencies-names))
+        (values #f '()))))
 
 (define (guix-package->gem-name package)
   "Given a PACKAGE built from rubygems.org, return the name of the
@@ -185,9 +184,9 @@ package on RubyGems."
 (define (latest-release package)
   "Return an <upstream-source> for the latest release of PACKAGE."
   (let* ((gem-name (guix-package->gem-name package))
-         (metadata (rubygems-fetch gem-name))
-         (version (assoc-ref metadata "version"))
-         (url (rubygems-uri gem-name version)))
+         (gem      (rubygems-fetch gem-name))
+         (version  (gem-version gem))
+         (url      (rubygems-uri gem-name version)))
     (upstream-source
      (package (package-name package))
      (version version)
diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm
index 354cae9c4c..6897f42be3 100644
--- a/guix/import/pypi.scm
+++ b/guix/import/pypi.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -363,7 +364,11 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
           (receive (guix-dependencies upstream-dependencies)
               (compute-inputs source-url wheel-url temp)
             (match guix-dependencies
-              ((required-inputs test-inputs)
+              ((required-inputs native-inputs)
+               (when (string-suffix? ".zip" source-url)
+                 (set! native-inputs (cons
+                                     '("unzip" ,unzip)
+                                     native-inputs)))
                (values
                 `(package
                    (name ,(python->package-name name))
@@ -371,20 +376,29 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
                    (source
                     (origin
                       (method url-fetch)
-                      ;; PyPI URL are case sensitive, but sometimes a project
-                      ;; named using mixed case has a URL using lower case, so
-                      ;; we must work around this inconsistency.  For actual
-                      ;; examples, compare the URLs of the "Deprecated" and
-                      ;; "uWSGI" PyPI packages.
-                      (uri ,(if (string-contains source-url name)
-                                `(pypi-uri ,name version)
-                                `(pypi-uri ,(string-downcase name) version)))
+                      (uri (pypi-uri
+                             ;; PyPI URL are case sensitive, but sometimes
+                             ;; a project named using mixed case has a URL
+                             ;; using lower case, so we must work around this
+                             ;; inconsistency.  For actual examples, compare
+                             ;; the URLs of the "Deprecated" and "uWSGI" PyPI
+                             ;; packages.
+                             ,(if (string-contains source-url name)
+                                  name
+                                  (string-downcase name))
+                             version
+                             ;; Some packages have been released as `.zip`
+                             ;; instead of the more common `.tar.gz`. For
+                             ;; example, see "path-and-address".
+                             ,@(if (string-suffix? ".zip" source-url)
+                                   '(".zip")
+                                   '())))
                       (sha256
                        (base32
                         ,(guix-hash-url temp)))))
                    (build-system python-build-system)
                    ,@(maybe-inputs required-inputs 'propagated-inputs)
-                   ,@(maybe-inputs test-inputs 'native-inputs)
+                   ,@(maybe-inputs native-inputs 'native-inputs)
                    (home-page ,home-page)
                    (synopsis ,synopsis)
                    (description ,description)
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index f054fc2bce..eedf6bf6a8 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,6 +35,7 @@
 
   #:use-module (guix monads)
   #:use-module (guix gexp)
+  #:use-module (guix profiles)
   #:autoload   (guix http-client) (http-fetch http-get-error?)
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
@@ -680,6 +682,9 @@ Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))
   -f, --file=FILE        build the package or derivation that the code within
                          FILE evaluates to"))
   (display (G_ "
+  -m, --manifest=FILE    build the packages that the manifest given in FILE
+                         evaluates to"))
+  (display (G_ "
   -S, --source           build the packages' source derivations"))
   (display (G_ "
       --sources[=TYPE]   build source derivations; TYPE may optionally be one
@@ -768,6 +773,9 @@ must be one of 'package', 'all', or 'transitive'~%")
          (option '(#\f "file") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'file arg result)))
+         (option '(#\m "manifest") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'manifest arg result)))
          (option '(#\n "dry-run") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'dry-run? #t (alist-cons 'graft? #f result))))
@@ -804,6 +812,14 @@ build---packages, gexps, derivations, and so on."
       (for-each validate-type lst)
       lst))
 
+  ;; Note: Taken from (guix scripts refresh).
+  (define (manifest->packages manifest)
+    "Return the list of packages in MANIFEST."
+    (filter-map (lambda (entry)
+                  (let ((item (manifest-entry-item entry)))
+                    (if (package? item) item #f)))
+                (manifest-entries manifest)))
+
   (append-map (match-lambda
                 (('argument . (? string? spec))
                  (cond ((derivation-path? spec)
@@ -827,6 +843,9 @@ build---packages, gexps, derivations, and so on."
                         (list (specification->package spec)))))
                 (('file . file)
                  (ensure-list (load* file (make-user-module '()))))
+                (('manifest . manifest)
+                 (manifest->packages
+                  (load* manifest (make-user-module '((guix profiles) (gnu))))))
                 (('expression . str)
                  (ensure-list (read/eval str)))
                 (('argument . (? derivation? drv))
diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm
index bc0ceabd3f..ad05c333dc 100644
--- a/guix/scripts/deploy.scm
+++ b/guix/scripts/deploy.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 David Thompson <davet@gnu.org>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index 99a88c50fa..f13f221da9 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -20,18 +20,22 @@
 (define-module (guix scripts describe)
   #:use-module ((guix config) #:select (%guix-version))
   #:use-module ((guix ui) #:hide (display-profile-content))
+  #:use-module ((guix utils) #:select (string-replace-substring))
   #:use-module (guix channels)
   #:use-module (guix scripts)
   #:use-module (guix describe)
   #:use-module (guix profiles)
-  #:use-module ((guix scripts pull) #:select (display-profile-content))
   #:use-module (git)
   #:use-module (json)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-37)
   #:use-module (ice-9 match)
   #:autoload   (ice-9 pretty-print) (pretty-print)
-  #:export (guix-describe))
+  #:use-module (web uri)
+  #:export (display-profile-content
+            channel-commit-hyperlink
+
+            guix-describe))
 
 
 ;;;
@@ -173,6 +177,76 @@ in the format specified by FMT."
                   channels))))
   (display-package-search-path fmt))
 
+(define (display-profile-content profile number)
+  "Display the packages in PROFILE, generation NUMBER, in a human-readable
+way and displaying details about the channel's source code."
+  (display-generation profile number)
+  (for-each (lambda (entry)
+              (format #t "  ~a ~a~%"
+                      (manifest-entry-name entry)
+                      (manifest-entry-version entry))
+              (match (assq 'source (manifest-entry-properties entry))
+                (('source ('repository ('version 0)
+                                       ('url url)
+                                       ('branch branch)
+                                       ('commit commit)
+                                       _ ...))
+                 (let ((channel (channel (name 'nameless)
+                                         (url url)
+                                         (branch branch)
+                                         (commit commit))))
+                   (format #t (G_ "    repository URL: ~a~%") url)
+                   (when branch
+                     (format #t (G_ "    branch: ~a~%") branch))
+                   (format #t (G_ "    commit: ~a~%")
+                           (if (supports-hyperlinks?)
+                               (channel-commit-hyperlink channel commit)
+                               commit))))
+                (_ #f)))
+
+            ;; Show most recently installed packages last.
+            (reverse
+             (manifest-entries
+              (profile-manifest (if (zero? number)
+                                    profile
+                                    (generation-file-name profile number)))))))
+
+(define %vcs-web-views
+  ;; Hard-coded list of host names and corresponding web view URL templates.
+  ;; TODO: Allow '.guix-channel' files to specify a URL template.
+  (let ((labhub-url (lambda (repository-url commit)
+                      (string-append
+                       (if (string-suffix? ".git" repository-url)
+                           (string-drop-right repository-url 4)
+                           repository-url)
+                       "/commit/" commit))))
+    `(("git.savannah.gnu.org"
+       ,(lambda (repository-url commit)
+          (string-append (string-replace-substring repository-url
+                                                   "/git/" "/cgit/")
+                         "/commit/?id=" commit)))
+      ("notabug.org" ,labhub-url)
+      ("framagit.org" ,labhub-url)
+      ("gitlab.com" ,labhub-url)
+      ("gitlab.inria.fr" ,labhub-url)
+      ("github.com" ,labhub-url))))
+
+(define* (channel-commit-hyperlink channel
+                                   #:optional
+                                   (commit (channel-commit channel)))
+  "Return a hyperlink for COMMIT in CHANNEL, using COMMIT as the hyperlink's
+text.  The hyperlink links to a web view of COMMIT, when available."
+  (let* ((url  (channel-url channel))
+         (uri  (string->uri url))
+         (host (and uri (uri-host uri))))
+    (if host
+        (match (assoc host %vcs-web-views)
+          (#f
+           commit)
+          ((_ template)
+           (hyperlink (template url commit) commit)))
+        commit)))
+
 
 ;;;
 ;;; Entry point.
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index cb1be989e1..51d4da209a 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -18,7 +18,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix scripts pull)
-  #:use-module (guix ui)
+  #:use-module ((guix ui) #:hide (display-profile-content))
   #:use-module (guix colors)
   #:use-module (guix utils)
   #:use-module ((guix status) #:select (with-status-verbosity))
@@ -37,6 +37,7 @@
                                 inferior-available-packages
                                 close-inferior)
   #:use-module (guix scripts build)
+  #:use-module (guix scripts describe)
   #:autoload   (guix build utils) (which)
   #:use-module ((guix build syscalls)
                 #:select (with-file-lock/no-wait))
@@ -56,13 +57,12 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (srfi srfi-37)
-  #:use-module (web uri)
   #:use-module (ice-9 match)
   #:use-module (ice-9 vlist)
   #:use-module (ice-9 format)
-  #:export (display-profile-content
-            channel-list
-            channel-commit-hyperlink
+  #:re-export (display-profile-content
+               channel-commit-hyperlink)
+  #:export (channel-list
             with-git-error-handling
             guix-pull))
 
@@ -188,42 +188,6 @@ Download and deploy the latest version of Guix.\n"))
 
          %standard-build-options))
 
-(define %vcs-web-views
-  ;; Hard-coded list of host names and corresponding web view URL templates.
-  ;; TODO: Allow '.guix-channel' files to specify a URL template.
-  (let ((labhub-url (lambda (repository-url commit)
-                      (string-append
-                       (if (string-suffix? ".git" repository-url)
-                           (string-drop-right repository-url 4)
-                           repository-url)
-                       "/commit/" commit))))
-    `(("git.savannah.gnu.org"
-       ,(lambda (repository-url commit)
-          (string-append (string-replace-substring repository-url
-                                                   "/git/" "/cgit/")
-                         "/commit/?id=" commit)))
-      ("notabug.org" ,labhub-url)
-      ("framagit.org" ,labhub-url)
-      ("gitlab.com" ,labhub-url)
-      ("gitlab.inria.fr" ,labhub-url)
-      ("github.com" ,labhub-url))))
-
-(define* (channel-commit-hyperlink channel
-                                   #:optional
-                                   (commit (channel-commit channel)))
-  "Return a hyperlink for COMMIT in CHANNEL, using COMMIT as the hyperlink's
-text.  The hyperlink links to a web view of COMMIT, when available."
-  (let* ((url  (channel-url channel))
-         (uri  (string->uri url))
-         (host (and uri (uri-host uri))))
-    (if host
-        (match (assoc host %vcs-web-views)
-          (#f
-           commit)
-          ((_ template)
-           (hyperlink (template url commit) commit)))
-        commit)))
-
 (define* (display-profile-news profile #:key concise?
                                current-is-newer?)
   "Display what's up in PROFILE--new packages, and all that.  If
@@ -559,40 +523,6 @@ true, display what would be built without actually building it."
 ;;; Queries.
 ;;;
 
-(define (display-profile-content profile number)
-  "Display the packages in PROFILE, generation NUMBER, in a human-readable
-way and displaying details about the channel's source code."
-  (display-generation profile number)
-  (for-each (lambda (entry)
-              (format #t "  ~a ~a~%"
-                      (manifest-entry-name entry)
-                      (manifest-entry-version entry))
-              (match (assq 'source (manifest-entry-properties entry))
-                (('source ('repository ('version 0)
-                                       ('url url)
-                                       ('branch branch)
-                                       ('commit commit)
-                                       _ ...))
-                 (let ((channel (channel (name 'nameless)
-                                         (url url)
-                                         (branch branch)
-                                         (commit commit))))
-                   (format #t (G_ "    repository URL: ~a~%") url)
-                   (when branch
-                     (format #t (G_ "    branch: ~a~%") branch))
-                   (format #t (G_ "    commit: ~a~%")
-                           (if (supports-hyperlinks?)
-                               (channel-commit-hyperlink channel commit)
-                               commit))))
-                (_ #f)))
-
-            ;; Show most recently installed packages last.
-            (reverse
-             (manifest-entries
-              (profile-manifest (if (zero? number)
-                                    profile
-                                    (generation-file-name profile number)))))))
-
 (define (indented-string str indent)
   "Return STR with each newline preceded by IDENT spaces."
   (define indent-string
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index 2f9dbb2508..77a72307b4 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
-;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/guix/swh.scm b/guix/swh.scm
index 3abf9aa1b5..8bdf9965f6 100644
--- a/guix/swh.scm
+++ b/guix/swh.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,7 +39,6 @@
             request-rate-limit-reached?
 
             origin?
-            origin-id
             origin-type
             origin-url
             origin-visits
@@ -247,7 +246,6 @@ FALSE-IF-404? is true, return #f upon 404 responses."
 ;; <https://archive.softwareheritage.org/api/1/origin/https://github.com/guix-mirror/guix/get>
 (define-json-mapping <origin> make-origin origin?
   json->origin
-  (id origin-id)
   (visits-url origin-visits-url "origin_visits_url")
   (type origin-type)
   (url origin-url))
diff --git a/guix/ui.scm b/guix/ui.scm
index a47dafecd4..dce97fb7b9 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -771,7 +771,7 @@ directories:~{ ~a~}~%")
              (display-hint (condition-fix-hint c))
              (exit 1))
 
-            ;; On Guile 3.0.0, exceptions such as 'unbound-variable' come are
+            ;; On Guile 3.0.0, exceptions such as 'unbound-variable' are
             ;; compound and include a '&message'.  However, that message only
             ;; contains the format string.  Thus, special-case it here to
             ;; avoid displaying a bare format string.
diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po
index 227fe67906..7a598cfc64 100644
--- a/po/doc/guix-manual.de.po
+++ b/po/doc/guix-manual.de.po
@@ -1999,7 +1999,7 @@ msgstr "Wie ein solches entsteht."
 #: doc/guix.texi:184 doc/guix.texi:2039 doc/guix.texi:2041
 #, no-wrap
 msgid "Keyboard Layout and Networking and Partitioning"
-msgstr "Tastaturbelegung@comma{} Netzwerkanbindung und Partitionierung"
+msgstr "Tastaturbelegung und Netzwerkanbindung und Partitionierung"
 
 #. type: menuentry
 #: doc/guix.texi:184 doc/guix.texi:2039
diff --git a/po/guix/fr.po b/po/guix/fr.po
index 77d859ebfd..e682b70d3f 100644
--- a/po/guix/fr.po
+++ b/po/guix/fr.po
@@ -1,9 +1,9 @@
 # French translation of guix.
-# Copyright (C) 2013-2018 the authors of Guix (msgids)
+# Copyright (C) 2013-2020 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
 # Rémy Chevalier <remychevalier@laposte.net>, 2013, 2014.
 # Frédéric Marchal <fmarchal@perso.be>, 2017.
-# Julien Lepiller <julien@lepiller.eu>, 2017, 2018.
+# Julien Lepiller <julien@lepiller.eu>, 2017-2020.
 #
 # Note de Frédéric Marchal: Le nom « shepherd » est le nom d'un démon (voir
 # https://www.gnu.org/software/shepherd/). Je ne l'ai pas traduit dans les
@@ -13,13 +13,12 @@
 # mais il est traité un peu différemment : on dit « le shepherd » (« the
 # shepherd » en anglais) avec l'article.
 #
-#: guix/ui.scm:206
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 1.0.1-pre1\n"
+"Project-Id-Version: guix 1.1.0-pre1\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2019-05-10 20:54+0200\n"
-"PO-Revision-Date: 2019-07-27 09:07+0200\n"
+"POT-Creation-Date: 2020-02-12 00:13+0100\n"
+"PO-Revision-Date: 2020-02-14 04:36+0100\n"
 "Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -28,7 +27,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.2.1\n"
+"X-Generator: Offlate 0.5\n"
 
 #: gnu.scm:83
 #, scheme-format
@@ -70,52 +69,47 @@ msgstr ""
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Essayez d'ajouter @code{(use-service-modules ~a)}."
 
-#: gnu/packages.scm:103
+#: gnu/packages.scm:96
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a : correctif introuvable"
 
-#: gnu/packages.scm:119
-#, scheme-format
-msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »"
-
-#: gnu/packages.scm:480 gnu/packages.scm:521
+#: gnu/packages.scm:460 gnu/packages.scm:501
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "spécification du paquet « ~a » ambiguë~%"
 
-#: gnu/packages.scm:481 gnu/packages.scm:522
+#: gnu/packages.scm:461 gnu/packages.scm:502
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "choix de ~a@~a à l'emplacement ~a~%"
 
-#: gnu/packages.scm:486 guix/scripts/package.scm:212
+#: gnu/packages.scm:466 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "le paquet « ~a » a été remplacé par « ~a »~%"
 
-#: gnu/packages.scm:493 gnu/packages.scm:510
+#: gnu/packages.scm:473 gnu/packages.scm:490
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A : paquet introuvable pour la version ~a~%"
 
-#: gnu/packages.scm:494 gnu/packages.scm:511
+#: gnu/packages.scm:474 gnu/packages.scm:491
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A : paquet inconnu~%"
 
-#: gnu/packages.scm:546
+#: gnu/packages.scm:530
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "le paquet « ~a » requiert la sortie « ~a »~%"
 
-#: gnu/services.scm:238
+#: gnu/services.scm:242
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a : aucune valeur spécifiée pour le service de type « ~a »"
 
-#: gnu/services.scm:336
+#: gnu/services.scm:340
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -126,7 +120,7 @@ msgstr ""
 "besoin : son noyau, l'image de démarrage, le profil du système, le script\n"
 "de démarrage, etc."
 
-#: gnu/services.scm:366
+#: gnu/services.scm:370
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -135,7 +129,17 @@ msgstr ""
 "qui est appelé par l’image de démarrage une fois que le système\n"
 "de fichiers racine est monté."
 
-#: gnu/services.scm:422
+#: gnu/services.scm:451
+msgid ""
+"Store provenance information about the system in the system\n"
+"itself: the channels used when building the system, and its configuration\n"
+"file, when available."
+msgstr ""
+"Enregistre les informations de provenance du système dans le système\n"
+"lui-même : les canaux utilisés lors de la construction d usystème et son fichier\n"
+"de configuration, s'il est disponible."
+
+#: gnu/services.scm:509
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -143,7 +147,7 @@ msgstr ""
 "Supprime les fichiers de @file{/tmp}, @file{/var/run} et d'autres\n"
 "emplacements temporaires au démarrage."
 
-#: gnu/services.scm:476
+#: gnu/services.scm:563
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -151,7 +155,7 @@ msgstr ""
 "Lance le code d’@dfn{activation} au démarrage et à la\n"
 "fin de @command{guix system reconfigure}."
 
-#: gnu/services.scm:527
+#: gnu/services.scm:614
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -159,11 +163,11 @@ msgstr ""
 "Ajoute des fichiers spéciaux au système de fichiers\n"
 "racine — p. ex. @file{/usr/bin/env}."
 
-#: gnu/services.scm:563
+#: gnu/services.scm:650
 msgid "Populate the @file{/etc} directory."
 msgstr "Rempli le répertoire @file{/etc}."
 
-#: gnu/services.scm:580
+#: gnu/services.scm:667
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -171,7 +175,7 @@ msgstr ""
 "Rempli @file{/run/setuid-programs} avec les exécutables\n"
 "spécifiés, en les rendant setuid-root."
 
-#: gnu/services.scm:600
+#: gnu/services.scm:687
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -181,7 +185,7 @@ msgstr ""
 "@file{/run/current-system/profile}. Il contient des paquets que l'administrateur\n"
 "système souhaite rendre disponible à tous les utilisateurs du système."
 
-#: gnu/services.scm:620
+#: gnu/services.scm:707
 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"
@@ -191,7 +195,7 @@ msgstr ""
 "Les micro-logiciels peuvent ensuite être envoyés à certains périphériques de la\n"
 "machine, comme une carte wifi."
 
-#: gnu/services.scm:651
+#: gnu/services.scm:738
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -199,37 +203,37 @@ msgstr ""
 "Enregistre des racines du ramasse-miettes — c.-à-d. des éléments du\n"
 "dépôt qui ne seront pas glanés par le ramasse-miettes."
 
-#: gnu/services.scm:676
+#: gnu/services.scm:764
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "pas de cible de type « ~a » pour le service « ~a »"
 
-#: gnu/services.scm:702 gnu/services.scm:805
+#: gnu/services.scm:790 gnu/services.scm:909
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "plus d'un service cible de type « ~a »"
 
-#: gnu/services.scm:795
+#: gnu/services.scm:899
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "service de type « ~a » pas trouvé"
 
-#: gnu/system.scm:335
+#: gnu/system.scm:347
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "paramètres de démarrage non reconnus dans « ~a »~%"
 
-#: gnu/system.scm:736
+#: gnu/system.scm:772
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "l'utilisation d'une chaîne pour le fichier « ~a » est obsolète. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:752
+#: gnu/system.scm:788
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr "l'utilisation d'une valeur monadic pour « ~a » est obsolète. Utilisez plutôt « plain-file »~%"
 
-#: gnu/system.scm:897
+#: gnu/system.scm:938
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a : nom d'environnement linguistique non valide"
@@ -294,49 +298,49 @@ msgstr "le groupe supplémentaire « ~a » de l'utilisateur « ~a » n'est p
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "le groupe primaire « ~a » de l'utilisateur « ~a » n'est pas déclaré"
 
-#: guix/import/opam.scm:133
+#: guix/import/opam.scm:141
 #, scheme-format
 msgid "Package not found in opam repository: ~a~%"
 msgstr "Paquet introuvable dans le dépôt opam : ~a~%"
 
-#: guix/import/opam.scm:344
+#: guix/import/opam.scm:357
 msgid "Updater for OPAM packages"
 msgstr "Logiciel de mise à jour des paquets OPAM"
 
-#: gnu/installer.scm:191
+#: gnu/installer.scm:194
 msgid "Locale"
 msgstr "Paramètres régionaux"
 
-#: gnu/installer.scm:207 gnu/installer/newt/timezone.scm:58
+#: gnu/installer.scm:210 gnu/installer/newt/timezone.scm:58
 msgid "Timezone"
 msgstr "Fuseau horaire"
 
-#: gnu/installer.scm:223
+#: gnu/installer.scm:226
 msgid "Keyboard mapping selection"
 msgstr "Sélection de la disposition du clavier"
 
-#: gnu/installer.scm:232
-msgid "Partitioning"
-msgstr "Partitionnement"
-
-#: gnu/installer.scm:240 gnu/installer/newt/hostname.scm:26
+#: gnu/installer.scm:234 gnu/installer/newt/hostname.scm:26
 msgid "Hostname"
 msgstr "Nom d'hôte"
 
-#: gnu/installer.scm:249
+#: gnu/installer.scm:243
 msgid "Network selection"
 msgstr "Sélection du réseau"
 
-#: gnu/installer.scm:256 gnu/installer/newt/user.scm:65
-#: gnu/installer/newt/user.scm:201
+#: gnu/installer.scm:250 gnu/installer/newt/user.scm:67
+#: gnu/installer/newt/user.scm:203
 msgid "User creation"
 msgstr "Création de l'utilisateur"
 
-#: gnu/installer.scm:264
+#: gnu/installer.scm:258
 msgid "Services"
 msgstr "Services"
 
-#: gnu/installer.scm:271 gnu/installer/newt/final.scm:51
+#: gnu/installer.scm:269
+msgid "Partitioning"
+msgstr "Partitionnement"
+
+#: gnu/installer.scm:276 gnu/installer/newt/final.scm:51
 msgid "Configuration file"
 msgstr "Fichier de configuration"
 
@@ -375,15 +379,15 @@ msgstr "Connexion filaire"
 
 #: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:44
 #: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
-#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:175
-#: gnu/installer/newt/page.scm:508 gnu/installer/newt/page.scm:565
-#: gnu/installer/newt/partition.scm:54 gnu/installer/newt/partition.scm:83
-#: gnu/installer/newt/partition.scm:115 gnu/installer/newt/partition.scm:126
+#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:177
+#: gnu/installer/newt/page.scm:510 gnu/installer/newt/page.scm:580
+#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
+#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
 #: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
-#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:738
-#: gnu/installer/newt/partition.scm:749 gnu/installer/newt/services.scm:85
-#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:200
-#: gnu/installer/newt/wifi.scm:202
+#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:736
+#: gnu/installer/newt/partition.scm:747 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:202
+#: gnu/installer/newt/wifi.scm:205
 msgid "Exit"
 msgstr "Sortir"
 
@@ -392,31 +396,31 @@ msgstr "Sortir"
 msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
 msgstr "Nous sommes maintenant prêts à commencer l'installation ! Un fichier de configuration du système a été généré, il est affiché plus bas. Ce fichier sera disponible dans « ~a » sur le système une fois installé. Le nouveau système sera créé à partir de ce fichier une fois que vous aurez appuyé sur OK. Cela prendra quelques minutes."
 
-#: gnu/installer/newt/final.scm:64
+#: gnu/installer/newt/final.scm:66
 msgid "Installation complete"
 msgstr "Installation terminée"
 
-#: gnu/installer/newt/final.scm:65 gnu/installer/newt/welcome.scm:115
+#: gnu/installer/newt/final.scm:67 gnu/installer/newt/welcome.scm:115
 msgid "Reboot"
 msgstr "Redémarrer"
 
-#: gnu/installer/newt/final.scm:66
+#: gnu/installer/newt/final.scm:68
 msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
 msgstr "Félicitations ! L'installation est maintenant terminée. Vous pouvez retirer le périphérique contenant l'image d'installation et appuyer sur le bouton pour redémarrer."
 
-#: gnu/installer/newt/final.scm:75
+#: gnu/installer/newt/final.scm:77
 msgid "Installation failed"
 msgstr "Installation échouée"
 
-#: gnu/installer/newt/final.scm:76
+#: gnu/installer/newt/final.scm:78
 msgid "Restart installer"
 msgstr "Redémarrer l'installateur"
 
-#: gnu/installer/newt/final.scm:77
+#: gnu/installer/newt/final.scm:79
 msgid "Retry system install"
 msgstr "Réessayer l'installation du système"
 
-#: gnu/installer/newt/final.scm:78
+#: gnu/installer/newt/final.scm:80
 msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
 msgstr "La dernière étape de l'installation du système a échouée. Vous pouvez réessayer la dernière étape ou redémarrer l'installateur."
 
@@ -442,7 +446,7 @@ msgstr "Choisissez une variante pour la disposition de votre clavier."
 
 #: gnu/installer/newt/keymap.scm:59 gnu/installer/newt/locale.scm:63
 #: gnu/installer/newt/locale.scm:78 gnu/installer/newt/locale.scm:94
-#: gnu/installer/newt/partition.scm:580 gnu/installer/newt/timezone.scm:64
+#: gnu/installer/newt/partition.scm:581 gnu/installer/newt/timezone.scm:64
 msgid "Back"
 msgstr "Retour"
 
@@ -502,12 +506,12 @@ msgstr "Annuler"
 msgid "Internet access"
 msgstr "Accès internet"
 
-#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:174
+#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:176
 msgid "Continue"
 msgstr "Continuer"
 
 #: gnu/installer/newt/network.scm:64
-msgid "The install process requires Internet access but no network device were found. Do you want to continue anyway?"
+msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?"
 msgstr "Le processus d'installation a besoin d'un accès à internet mais aucun périphérique réseau n'a été trouvé. Voulez-vous tout de même continuer ?"
 
 #: gnu/installer/newt/network.scm:78
@@ -535,211 +539,215 @@ msgstr "Attente de l'accès internet…"
 msgid "The selected network does not provide access to the Internet, please try again."
 msgstr "Le réseau sélectionné ne fournit pas d'accès à internet, réessayez."
 
-#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:106
+#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:108
 msgid "Connection error"
 msgstr "Erreur à la connexion"
 
-#: gnu/installer/newt/page.scm:71
+#: gnu/installer/newt/page.scm:72
 #, scheme-format
 msgid "Connecting to ~a, please wait."
 msgstr "Connexion à ~a, patientez."
 
-#: gnu/installer/newt/page.scm:72
+#: gnu/installer/newt/page.scm:73
 msgid "Connection in progress"
 msgstr "Connexion en cours"
 
-#: gnu/installer/newt/page.scm:91 gnu/installer/newt/user.scm:58
-msgid "Hide"
-msgstr "Cacher"
+#: gnu/installer/newt/page.scm:92 gnu/installer/newt/user.scm:59
+msgid "Show"
+msgstr "Montrer"
 
-#: gnu/installer/newt/page.scm:97 gnu/installer/newt/page.scm:507
-#: gnu/installer/newt/page.scm:564 gnu/installer/newt/partition.scm:443
+#: gnu/installer/newt/page.scm:99 gnu/installer/newt/page.scm:509
+#: gnu/installer/newt/page.scm:579 gnu/installer/newt/partition.scm:444
 #: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
-#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:63
-#: gnu/installer/newt/user.scm:199
+#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:65
+#: gnu/installer/newt/user.scm:201
 msgid "OK"
 msgstr "OK"
 
-#: gnu/installer/newt/page.scm:123
+#: gnu/installer/newt/page.scm:125
 msgid "Please enter a non empty input."
 msgstr "Saisissez une valeur non vide."
 
-#: gnu/installer/newt/page.scm:124 gnu/installer/newt/user.scm:119
+#: gnu/installer/newt/page.scm:126 gnu/installer/newt/user.scm:121
 msgid "Empty input"
 msgstr "Valeur vide"
 
-#: gnu/installer/newt/partition.scm:45
+#: gnu/installer/newt/page.scm:582
+msgid "Edit"
+msgstr "Modifier"
+
+#: gnu/installer/newt/partition.scm:46
 msgid "Everything is one partition"
 msgstr "Tout sur une partition"
 
-#: gnu/installer/newt/partition.scm:46
+#: gnu/installer/newt/partition.scm:47
 msgid "Separate /home partition"
 msgstr "Partition /home séparée"
 
-#: gnu/installer/newt/partition.scm:48
+#: gnu/installer/newt/partition.scm:49
 msgid "Please select a partitioning scheme."
 msgstr "Sélectionnez un schéma de partitionnement."
 
-#: gnu/installer/newt/partition.scm:49
+#: gnu/installer/newt/partition.scm:50
 msgid "Partition scheme"
 msgstr "Schéma de partitionnement"
 
-#: gnu/installer/newt/partition.scm:61
+#: gnu/installer/newt/partition.scm:62
 msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
 msgstr "Nous allons formater votre disque dur. Toutes les données seront perdues. Voulez-vous continuer ?"
 
-#: gnu/installer/newt/partition.scm:63
+#: gnu/installer/newt/partition.scm:64
 msgid "Format disk?"
 msgstr "Formater le disque ?"
 
-#: gnu/installer/newt/partition.scm:66
+#: gnu/installer/newt/partition.scm:67
 msgid "Partition formatting is in progress, please wait."
 msgstr "Formatage du disque en cours, patientez."
 
-#: gnu/installer/newt/partition.scm:67
+#: gnu/installer/newt/partition.scm:68
 msgid "Preparing partitions"
 msgstr "Préparation des partitions"
 
-#: gnu/installer/newt/partition.scm:78
+#: gnu/installer/newt/partition.scm:79
 msgid "Please select a disk."
 msgstr "Sélectionnez un disque."
 
-#: gnu/installer/newt/partition.scm:79
+#: gnu/installer/newt/partition.scm:80
 msgid "Disk"
 msgstr "Disque"
 
-#: gnu/installer/newt/partition.scm:91
+#: gnu/installer/newt/partition.scm:92
 msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
 msgstr "Sélectionnez un nouveau type de table des partitions. Soyez prudent, toutes les données sur le disque seront perdues."
 
-#: gnu/installer/newt/partition.scm:93
+#: gnu/installer/newt/partition.scm:94
 msgid "Partition table"
 msgstr "Table des partitions"
 
-#: gnu/installer/newt/partition.scm:110
+#: gnu/installer/newt/partition.scm:111
 msgid "Please select a partition type."
 msgstr "Sélectionnez un type de partition."
 
-#: gnu/installer/newt/partition.scm:111
+#: gnu/installer/newt/partition.scm:112
 msgid "Partition type"
 msgstr "Type de partition"
 
-#: gnu/installer/newt/partition.scm:121
+#: gnu/installer/newt/partition.scm:122
 msgid "Please select the file-system type for this partition."
 msgstr "Sélectionnez le type de système de fichier pour cette partition."
 
-#: gnu/installer/newt/partition.scm:122
+#: gnu/installer/newt/partition.scm:123
 msgid "File-system type"
 msgstr "Type de système de fichier"
 
-#: gnu/installer/newt/partition.scm:135
+#: gnu/installer/newt/partition.scm:136
 msgid "Primary partitions count exceeded."
 msgstr "Nombre maximal de partitions primaires dépassé."
 
-#: gnu/installer/newt/partition.scm:136 gnu/installer/newt/partition.scm:141
-#: gnu/installer/newt/partition.scm:146
+#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
+#: gnu/installer/newt/partition.scm:147
 msgid "Creation error"
 msgstr "Erreur à la création"
 
-#: gnu/installer/newt/partition.scm:140
+#: gnu/installer/newt/partition.scm:141
 msgid "Extended partition creation error."
 msgstr "Erreur à la création d'une partition étendue."
 
-#: gnu/installer/newt/partition.scm:145
+#: gnu/installer/newt/partition.scm:146
 msgid "Logical partition creation error."
 msgstr "Erreur à la création d'une partition logique."
 
-#: gnu/installer/newt/partition.scm:159
+#: gnu/installer/newt/partition.scm:160
 #, scheme-format
 msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
 msgstr "Saisissez le mot de passe pour le chiffrement de la partition ~a (étiquette : ~a)."
 
-#: gnu/installer/newt/partition.scm:161 gnu/installer/newt/wifi.scm:91
+#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
 msgid "Password required"
 msgstr "Mot de passe requis"
 
-#: gnu/installer/newt/partition.scm:166
+#: gnu/installer/newt/partition.scm:167
 #, scheme-format
 msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
 msgstr "Confirmez le mot de passe pour le chiffrement de la partition ~a (étiquette : ~a)."
 
-#: gnu/installer/newt/partition.scm:168 gnu/installer/newt/user.scm:156
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:158
 msgid "Password confirmation required"
 msgstr "Confirmation du mot de passe requise"
 
-#: gnu/installer/newt/partition.scm:180 gnu/installer/newt/user.scm:164
+#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:166
 msgid "Password mismatch, please try again."
 msgstr "Les mots de passe sont différents, réessayez."
 
-#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:165
+#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:167
 msgid "Password error"
 msgstr "Erreur de mot de passe"
 
-#: gnu/installer/newt/partition.scm:267
+#: gnu/installer/newt/partition.scm:268
 msgid "Please enter the partition gpt name."
 msgstr "Saisissez le nom gpt de la partition."
 
-#: gnu/installer/newt/partition.scm:268
+#: gnu/installer/newt/partition.scm:269
 msgid "Partition name"
 msgstr "Nom de la partition"
 
-#: gnu/installer/newt/partition.scm:298
+#: gnu/installer/newt/partition.scm:299
 msgid "Please enter the encrypted label"
 msgstr "Saisissez l'étiquette chiffrée"
 
-#: gnu/installer/newt/partition.scm:299
+#: gnu/installer/newt/partition.scm:300
 msgid "Encryption label"
 msgstr "Étiquette de chiffrement"
 
-#: gnu/installer/newt/partition.scm:316
+#: gnu/installer/newt/partition.scm:317
 #, scheme-format
 msgid "Please enter the size of the partition. The maximum size is ~a."
 msgstr "Saisissez la taille de la partition. La taille maximale est de ~a."
 
-#: gnu/installer/newt/partition.scm:318
+#: gnu/installer/newt/partition.scm:319
 msgid "Partition size"
 msgstr "Taille de la partition"
 
-#: gnu/installer/newt/partition.scm:336
+#: gnu/installer/newt/partition.scm:337
 msgid "The percentage can not be superior to 100."
 msgstr "Le pourcentage ne peut être supérieur à 100."
 
-#: gnu/installer/newt/partition.scm:337 gnu/installer/newt/partition.scm:342
-#: gnu/installer/newt/partition.scm:347
+#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
+#: gnu/installer/newt/partition.scm:348
 msgid "Size error"
 msgstr "Erreur de taille"
 
-#: gnu/installer/newt/partition.scm:341
+#: gnu/installer/newt/partition.scm:342
 msgid "The requested size is incorrectly formatted, or too large."
 msgstr "La taille demandée est mal formatée ou trop grande."
 
-#: gnu/installer/newt/partition.scm:346
+#: gnu/installer/newt/partition.scm:347
 msgid "The request size is superior to the maximum size."
 msgstr "La taille demandée est supérieure à la taille maximale."
 
-#: gnu/installer/newt/partition.scm:366
+#: gnu/installer/newt/partition.scm:367
 msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
 msgstr "Saisissez le point de montage souhaité pour cette partition. Laissez ce champ vide si vous ne voulez pas indiquer de point de montage."
 
-#: gnu/installer/newt/partition.scm:368
+#: gnu/installer/newt/partition.scm:369
 msgid "Mounting point"
 msgstr "Point de montage"
 
-#: gnu/installer/newt/partition.scm:432
+#: gnu/installer/newt/partition.scm:433
 #, scheme-format
 msgid "Creating ~a partition starting at ~a of ~a."
 msgstr "Création d'une partition de type ~a qui commence à ~a octets sur ~a."
 
-#: gnu/installer/newt/partition.scm:434
+#: gnu/installer/newt/partition.scm:435
 #, scheme-format
 msgid "You are currently editing partition ~a."
 msgstr "Vous modifiez actuellement la partition ~a."
 
-#: gnu/installer/newt/partition.scm:437
+#: gnu/installer/newt/partition.scm:438
 msgid "Partition creation"
 msgstr "Création de la partition"
 
-#: gnu/installer/newt/partition.scm:438
+#: gnu/installer/newt/partition.scm:439
 msgid "Partition edit"
 msgstr "Modification de la partition"
 
@@ -796,23 +804,23 @@ msgstr "Pas de point de montage pour la racine."
 msgid "Missing mount point"
 msgstr "Point de montage absent"
 
-#: gnu/installer/newt/partition.scm:728
+#: gnu/installer/newt/partition.scm:726
 msgid "Guided - using the entire disk"
 msgstr "Guidée — utilise le disque complet"
 
-#: gnu/installer/newt/partition.scm:729
+#: gnu/installer/newt/partition.scm:727
 msgid "Guided - using the entire disk with encryption"
 msgstr "Guidée — utiliser le disque complet avec chiffrement"
 
-#: gnu/installer/newt/partition.scm:730
+#: gnu/installer/newt/partition.scm:728
 msgid "Manual"
 msgstr "Manuelle"
 
-#: gnu/installer/newt/partition.scm:732
+#: gnu/installer/newt/partition.scm:730
 msgid "Please select a partitioning method."
 msgstr "Sélectionnez une méthode de partitionnement."
 
-#: gnu/installer/newt/partition.scm:733
+#: gnu/installer/newt/partition.scm:731
 msgid "Partitioning method"
 msgstr "Méthode de partitionnement"
 
@@ -850,55 +858,57 @@ msgstr ""
 msgid "Please select a timezone."
 msgstr "Sélectionnez un fuseau horaire."
 
-#: gnu/installer/newt/user.scm:43
+#: gnu/installer/newt/user.scm:44
 msgid "Name"
 msgstr "Nom"
 
-#: gnu/installer/newt/user.scm:45
+#: gnu/installer/newt/user.scm:46
 msgid "Real name"
 msgstr "Nom réel"
 
-#: gnu/installer/newt/user.scm:47
+#: gnu/installer/newt/user.scm:48
 msgid "Home directory"
 msgstr "Répertoire personnel"
 
-#: gnu/installer/newt/user.scm:49
+#: gnu/installer/newt/user.scm:50
 msgid "Password"
 msgstr "Mot de passe"
 
-#: gnu/installer/newt/user.scm:118
+#: gnu/installer/newt/user.scm:120
 msgid "Empty inputs are not allowed."
 msgstr "Les valeurs vides ne sont pas permises."
 
-#: gnu/installer/newt/user.scm:155
+#: gnu/installer/newt/user.scm:157
 msgid "Please confirm the password."
 msgstr "Confirmez le mot de passe."
 
-#: gnu/installer/newt/user.scm:172
+#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+#. system administrator account.
+#: gnu/installer/newt/user.scm:174
 msgid "Please choose a password for the system administrator (\"root\")."
 msgstr "Sélectionnez un mot de passe pour l'administrateur système (« root »)."
 
-#: gnu/installer/newt/user.scm:174
+#: gnu/installer/newt/user.scm:176
 msgid "System administrator password"
 msgstr "Mot de passe de l'administrateur système"
 
-#: gnu/installer/newt/user.scm:187
+#: gnu/installer/newt/user.scm:189
 msgid "Please add at least one user to system using the 'Add' button."
 msgstr "Ajoutez au moins un utilisateur au système avec le bouton « Ajouter »."
 
-#: gnu/installer/newt/user.scm:190
+#: gnu/installer/newt/user.scm:192
 msgid "Add"
 msgstr "Ajouter"
 
-#: gnu/installer/newt/user.scm:191
+#: gnu/installer/newt/user.scm:193
 msgid "Delete"
 msgstr "Supprimer"
 
-#: gnu/installer/newt/user.scm:250
+#: gnu/installer/newt/user.scm:252
 msgid "Please create at least one user."
 msgstr "Définissez au moins un utilisateur."
 
-#: gnu/installer/newt/user.scm:251
+#: gnu/installer/newt/user.scm:253
 msgid "No user"
 msgstr "Aucun utilisateur"
 
@@ -929,53 +939,53 @@ msgstr "Installation graphique avec une interface orientée terminal"
 msgid "Install using the shell based process"
 msgstr "Installation avec un processus orienté shell"
 
-#: gnu/installer/newt/wifi.scm:81
+#: gnu/installer/newt/wifi.scm:82
 msgid "Unable to find a wifi technology"
 msgstr "Impossible de trouver un périphérique wifi"
 
-#: gnu/installer/newt/wifi.scm:85
+#: gnu/installer/newt/wifi.scm:86
 msgid "Scanning wifi for available networks, please wait."
 msgstr "Scan des réseaux wifi disponible, patientez."
 
-#: gnu/installer/newt/wifi.scm:86
+#: gnu/installer/newt/wifi.scm:87
 msgid "Scan in progress"
 msgstr "Scan en cours"
 
-#: gnu/installer/newt/wifi.scm:90
+#: gnu/installer/newt/wifi.scm:91
 msgid "Please enter the wifi password."
 msgstr "Saisissez le mot de passe wifi."
 
-#: gnu/installer/newt/wifi.scm:96
+#: gnu/installer/newt/wifi.scm:98
 #, scheme-format
 msgid "The password you entered for ~a is incorrect."
 msgstr "Le mot de passe que vous avez saisi pour ~a est incorrect."
 
-#: gnu/installer/newt/wifi.scm:98
+#: gnu/installer/newt/wifi.scm:100
 msgid "Wrong password"
 msgstr "Mauvais mot de passe"
 
-#: gnu/installer/newt/wifi.scm:104
+#: gnu/installer/newt/wifi.scm:106
 #, scheme-format
 msgid "An error occurred while trying to connect to ~a, please retry."
 msgstr "Une erreur est survenue lors de la tentative de connexion à ~a, réessayez."
 
-#: gnu/installer/newt/wifi.scm:197
+#: gnu/installer/newt/wifi.scm:200
 msgid "Please select a wifi network."
 msgstr "Sélectionnez un réseau wifi."
 
-#: gnu/installer/newt/wifi.scm:203
+#: gnu/installer/newt/wifi.scm:206
 msgid "Scan"
 msgstr "Scan"
 
-#: gnu/installer/newt/wifi.scm:208
+#: gnu/installer/newt/wifi.scm:211
 msgid "No wifi detected"
 msgstr "Aucun réseau wifi détecté"
 
-#: gnu/installer/newt/wifi.scm:223
+#: gnu/installer/newt/wifi.scm:226
 msgid "Wifi"
 msgstr "Wifi"
 
-#: gnu/installer/parted.scm:428 gnu/installer/parted.scm:465
+#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
 msgid "Free space"
 msgstr "Espace libre"
 
@@ -984,27 +994,27 @@ msgstr "Espace libre"
 msgid "Device ~a is still in use."
 msgstr "Le périphérique ~a est toujours utilisé."
 
-#: gnu/installer/services.scm:85
+#: gnu/installer/services.scm:88
 msgid "OpenSSH secure shell daemon (sshd)"
 msgstr "Démon de shell sécurisé OpenSSH (sshd)"
 
-#: gnu/installer/services.scm:89
+#: gnu/installer/services.scm:92
 msgid "Tor anonymous network router"
 msgstr "Réseau anonyme Tor"
 
-#: gnu/installer/services.scm:93
+#: gnu/installer/services.scm:96
 msgid "Mozilla NSS certificates, for HTTPS access"
 msgstr "Certificats NSS de Mozilla, pour l'accès HTTPS"
 
-#: gnu/installer/services.scm:100
+#: gnu/installer/services.scm:103
 msgid "NetworkManager network connection manager"
 msgstr "Gestionnaire de connexions réseaux NetworkManager"
 
-#: gnu/installer/services.scm:105
+#: gnu/installer/services.scm:108
 msgid "Connman network connection manager"
 msgstr "Gestionnaire de connexions réseaux Connman"
 
-#: gnu/installer/services.scm:110
+#: gnu/installer/services.scm:113
 msgid "DHCP client (dynamic IP address assignment)"
 msgstr "Client DHCP (affectation dynamique d'adresse IP)"
 
@@ -1023,16 +1033,92 @@ msgstr "Appuyez sur Entrée pour continuer.~%"
 msgid "Command failed with exit code ~a.~%"
 msgstr "La commande a échouée avec le code ~a.~%"
 
+#: gnu/machine/ssh.scm:106
+#, scheme-format
+msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
+msgstr "<machine-ssh-configuration> sans « host-key » est obsolète~%"
+
+#: gnu/machine/ssh.scm:169
+#, scheme-format
+msgid "device '~a' not found: ~a"
+msgstr "périphérique « ~a » non trouvé : ~a"
+
+#: gnu/machine/ssh.scm:187
+#, scheme-format
+msgid "no file system with label '~a'"
+msgstr "aucun système de fichier étiqueté « ~a »"
+
+#: gnu/machine/ssh.scm:210
+#, scheme-format
+msgid "no file system with UUID '~a'"
+msgstr "aucun système de fichier avec l'UUID « ~a »"
+
+#: gnu/machine/ssh.scm:267
+#, scheme-format
+msgid "~a missing modules ~{ ~a~}~%"
+msgstr "~a modules manquants ~{ ~a~}~%"
+
+#: gnu/machine/ssh.scm:283
+#, scheme-format
+msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
+msgstr "système cible incorrect (« ~a » donné, alors que le système rapporte qu'il est un « ~a »)~%"
+
+#: gnu/machine/ssh.scm:383
+#, scheme-format
+msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
+msgstr "pas de clef de signature « ~a ». Avez--vous lancé « guix archive --generate-key » ?"
+
+#: gnu/machine/ssh.scm:434
+msgid "could not roll-back machine"
+msgstr "impossible de faire revenir la machine en arrière"
+
+#: gnu/machine/ssh.scm:466
+msgid ""
+"Provisioning for machines that are accessible over SSH\n"
+"and have a known host-name. This entails little more than maintaining an SSH\n"
+"connection to the host."
+msgstr ""
+"Provisionnement pour les machines accessibles en SSH et qui\n"
+"ont un nom d'hôte connu. Cela nécessite à peine plus que de\n"
+"maintenir une connexion SSH à l'hôte"
+
+#: gnu/machine/ssh.scm:478
+#, scheme-format
+msgid ""
+"unsupported machine configuration '~a'\n"
+"for environment of type '~a'"
+msgstr ""
+"configuration de machine « ~a » non prise en charge\n"
+"pour l'environnement de type « ~a »"
+
+#: gnu/packages/bootstrap.scm:137
+#, scheme-format
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr "impossible de trouver le binaire d'initialisation « ~a » pour le système « ~a »"
+
+#: gnu/packages/bootstrap.scm:436
+msgid "Raw build system with direct store access"
+msgstr "Système de construction brut avec un accès direct au dépôt"
+
+#: gnu/packages/bootstrap.scm:444
+msgid "Pre-built Guile for bootstrapping purposes."
+msgstr "Guile pré-construit pour le bootstrap."
+
+#: guix/build/utils.scm:713
+#, scheme-format
+msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
+msgstr "« ~a~{ ~a~} » a quitté avec le statut ~a ; la sortie est la suivante :~%~%~{  ~a~%~}"
+
 #: guix/scripts.scm:61
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argument non valide : ~a~%"
 
-#: guix/scripts.scm:89 guix/scripts/download.scm:135
-#: guix/scripts/search.scm:60 guix/scripts/import/cran.scm:84
-#: guix/scripts/import/elpa.scm:85 guix/scripts/publish.scm:888
-#: guix/scripts/edit.scm:79 guix/scripts/describe.scm:205
-#: guix/scripts/processes.scm:230
+#: guix/scripts.scm:89 guix/scripts/download.scm:150
+#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
+#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
+#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A : option non reconnue~%"
@@ -1094,7 +1180,12 @@ msgstr "spécification de remplacement invalide : ~s~%"
 msgid "the source of ~a is not a Git reference~%"
 msgstr "la source de ~a n'est pas une référence Git~%"
 
-#: guix/scripts/build.scm:417
+#: guix/scripts/build.scm:380
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification~%"
+msgstr "~a : spécification d'URL Git de remplacement invalide~%"
+
+#: guix/scripts/build.scm:425
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
@@ -1104,7 +1195,7 @@ msgstr ""
 "      --with-source=SOURCE\n"
 "                         utiliser la SOURCE donnée pour compiler le paquet correspondant"
 
-#: guix/scripts/build.scm:420
+#: guix/scripts/build.scm:428
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -1114,7 +1205,7 @@ msgstr ""
 "      --with-input=PAQUET=REMPLACEMENT\n"
 "                         remplacer le paquet de dépendance PAQUET par REMPLACEMENT"
 
-#: guix/scripts/build.scm:423
+#: guix/scripts/build.scm:431
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -1124,7 +1215,7 @@ msgstr ""
 "      --with-graft=PAQUET=REMPLACEMENT\n"
 "                         greffer le paquet REMPLACEMENT sur les paquets qui font référence à PAQUET"
 
-#: guix/scripts/build.scm:426
+#: guix/scripts/build.scm:434
 msgid ""
 "\n"
 "      --with-branch=PACKAGE=BRANCH\n"
@@ -1134,7 +1225,7 @@ msgstr ""
 "      --with-branch=PAQUET=BRANCHE\n"
 "                         construit le PAQUET à partir du dernier commit de la BRANCHE"
 
-#: guix/scripts/build.scm:429
+#: guix/scripts/build.scm:437
 msgid ""
 "\n"
 "      --with-commit=PACKAGE=COMMIT\n"
@@ -1144,7 +1235,7 @@ msgstr ""
 "      --with-commit=PAQUET=COMMIT\n"
 "                         construit le PAQUET à partir du COMMIT"
 
-#: guix/scripts/build.scm:432
+#: guix/scripts/build.scm:440
 msgid ""
 "\n"
 "      --with-git-url=PACKAGE=URL\n"
@@ -1154,12 +1245,14 @@ msgstr ""
 "      --with-git-url=PAQUET=URL\n"
 "                         construit le PAQUET à partir de l'URL du dépôt"
 
-#: guix/scripts/build.scm:463
+#: guix/scripts/build.scm:471
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
 msgstr "la transformation « ~a » n'a pas d'effet sur ~a~%"
 
-#: guix/scripts/build.scm:481
+#: guix/scripts/build.scm:489 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:98 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -1167,7 +1260,7 @@ msgstr ""
 "\n"
 "  -L, --load-path=REP    préfixer le chemin de recherche par REP"
 
-#: guix/scripts/build.scm:483
+#: guix/scripts/build.scm:491
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -1175,7 +1268,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      garder l'arbre de compilation pour les compilations ayant échoué"
 
-#: guix/scripts/build.scm:485
+#: guix/scripts/build.scm:493
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -1183,7 +1276,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       continuer si certaines dérivations échouent"
 
-#: guix/scripts/build.scm:487
+#: guix/scripts/build.scm:495
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -1191,7 +1284,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          ne pas compiler les dérivations"
 
-#: guix/scripts/build.scm:489
+#: guix/scripts/build.scm:497
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -1199,7 +1292,7 @@ msgstr ""
 "\n"
 "      --fallback         revenir à la compilation quand le substitut échoue"
 
-#: guix/scripts/build.scm:491
+#: guix/scripts/build.scm:499
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -1207,7 +1300,7 @@ msgstr ""
 "\n"
 "      --no-substitutes   compiler plutôt que recourir à des substituts pré-compilés"
 
-#: guix/scripts/build.scm:493 guix/scripts/size.scm:233
+#: guix/scripts/build.scm:501 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -1217,7 +1310,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         récupérer les substituts depuis les URLS si elles sont autorisées"
 
-#: guix/scripts/build.scm:496
+#: guix/scripts/build.scm:504
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -1225,15 +1318,15 @@ msgstr ""
 "\n"
 "      --no-grafts        ne pas greffer les paquets"
 
-#: guix/scripts/build.scm:498
+#: guix/scripts/build.scm:506
 msgid ""
 "\n"
-"      --no-build-hook    do not attempt to offload builds via the build hook"
+"      --no-offload       do not attempt to offload builds"
 msgstr ""
 "\n"
-"      --no-build-hook    ne pas essayer de décharger les compilations via le hook de compilation"
+"      --no-offload       ne pas essayer de décharger les compilations"
 
-#: guix/scripts/build.scm:500
+#: guix/scripts/build.scm:508
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -1243,7 +1336,7 @@ msgstr ""
 "      --max-silent-time=N\n"
 "                         marquer la compilation comme ayant échouée après N secondes de silence"
 
-#: guix/scripts/build.scm:503
+#: guix/scripts/build.scm:511
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -1251,7 +1344,7 @@ msgstr ""
 "\n"
 "      --timeout=N        marquer la compilation comme ayant échouée après N secondes d'activité"
 
-#: guix/scripts/build.scm:505
+#: guix/scripts/build.scm:513
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -1259,7 +1352,7 @@ msgstr ""
 "\n"
 "      --rounds=N         compiler N fois de suite pour détecter les non déterminismes"
 
-#: guix/scripts/build.scm:507
+#: guix/scripts/build.scm:515
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -1267,7 +1360,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          utiliser jusqu'à N cœurs CPU pour la compilation"
 
-#: guix/scripts/build.scm:509
+#: guix/scripts/build.scm:517
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -1275,7 +1368,7 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       autoriser au plus N tâches de compilation"
 
-#: guix/scripts/build.scm:511
+#: guix/scripts/build.scm:519
 msgid ""
 "\n"
 "      --debug=LEVEL      produce debugging output at LEVEL"
@@ -1283,12 +1376,21 @@ msgstr ""
 "\n"
 "      --debug=NIVEAU     produire une sortie de débogage à ce NIVEAU"
 
-#: guix/scripts/build.scm:621 guix/scripts/build.scm:628
+#: guix/scripts/build.scm:536
+msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
+msgstr "« --keep-failed » ignoré car vous parlez à un démon distant\n"
+
+#: guix/scripts/build.scm:617
+#, scheme-format
+msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
+msgstr "« --no-build-hook » est obsolète ; utilisez plutôt « --no-offload »~%"
+
+#: guix/scripts/build.scm:647 guix/scripts/build.scm:654
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "pas un nombre: argument d'option « ~a » : ~a~%"
 
-#: guix/scripts/build.scm:649
+#: guix/scripts/build.scm:675
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -1296,7 +1398,7 @@ msgstr ""
 "Usage: guix build [OPTION]... PAQUET-OU-DERIVATION...\n"
 "Compiler le PAQUET-OU-DERIVATION donné et retourner leurs chemins de sortie.\n"
 
-#: guix/scripts/build.scm:651
+#: guix/scripts/build.scm:677
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -1304,7 +1406,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compiler le paquet ou la dérivation évalué par EXPR"
 
-#: guix/scripts/build.scm:653
+#: guix/scripts/build.scm:679
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -1314,7 +1416,7 @@ msgstr ""
 "  -f, --file=FICHIER     compiler le paquet ou la dérivation qui est évaluée\n"
 "                         par le code dans FICHIER"
 
-#: guix/scripts/build.scm:656
+#: guix/scripts/build.scm:682
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -1322,7 +1424,7 @@ msgstr ""
 "\n"
 "  -S, --source           compiler les dérivations de source du paquet"
 
-#: guix/scripts/build.scm:658
+#: guix/scripts/build.scm:684
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -1332,8 +1434,8 @@ msgstr ""
 "      --sources[=TYPE]   compiler les dérivations sources. TYPE peut optionnellement\n"
 "                         être « package », « all » (défaut) ou « transitive »"
 
-#: guix/scripts/build.scm:661 guix/scripts/pull.scm:97
-#: guix/scripts/pack.scm:754
+#: guix/scripts/build.scm:687 guix/scripts/pull.scm:114
+#: guix/scripts/pack.scm:908
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -1341,7 +1443,8 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   essayer de compiler pour le SYSTÈME donné, par exemple « i686-linux »"
 
-#: guix/scripts/build.scm:663 guix/scripts/pack.scm:756
+#: guix/scripts/build.scm:689 guix/scripts/system.scm:985
+#: guix/scripts/pack.scm:910
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -1349,7 +1452,7 @@ msgstr ""
 "\n"
 "      --target=TRIPLET   effectuer une compilation croisée pour TRIPLET, par exemple « armel-linux-gnu »"
 
-#: guix/scripts/build.scm:665
+#: guix/scripts/build.scm:691
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -1357,7 +1460,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      retourner les chemins de dérivation pour les paquets donnés"
 
-#: guix/scripts/build.scm:667
+#: guix/scripts/build.scm:693
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -1365,7 +1468,7 @@ msgstr ""
 "\n"
 "      --check            recompiler les éléments pour détecter des problèmes de non déterminisme"
 
-#: guix/scripts/build.scm:669
+#: guix/scripts/build.scm:695
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -1373,7 +1476,7 @@ msgstr ""
 "\n"
 "      --repair           réparer les éléments spécifiés"
 
-#: guix/scripts/build.scm:671
+#: guix/scripts/build.scm:697 guix/scripts/pack.scm:928
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -1383,11 +1486,11 @@ msgstr ""
 "  -r, --root=FICHIER     faire de FICHIER un lien symbolique pointant sur le résultat\n"
 "                         et l'enregistrer en tant que racine du garbage collector"
 
-#: guix/scripts/build.scm:674 guix/scripts/package.scm:364
+#: guix/scripts/build.scm:700 guix/scripts/package.scm:371
 #: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
-#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:95
-#: guix/scripts/system.scm:1032 guix/scripts/copy.scm:120
-#: guix/scripts/pack.scm:771
+#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
+#: guix/scripts/system.scm:987 guix/scripts/copy.scm:120
+#: guix/scripts/pack.scm:933 guix/scripts/deploy.scm:56
 msgid ""
 "\n"
 "  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -1395,7 +1498,7 @@ msgstr ""
 "\n"
 "  -v, --verbosity=NIVEAU utiliser le NIVEAU de verbosité donné"
 
-#: guix/scripts/build.scm:676
+#: guix/scripts/build.scm:702
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -1403,7 +1506,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            ne pas montrer le journal de compilation"
 
-#: guix/scripts/build.scm:678
+#: guix/scripts/build.scm:704
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -1411,18 +1514,19 @@ msgstr ""
 "\n"
 "      --log-file         retourner les fichiers de journalisation pour les dérivations données"
 
-#: guix/scripts/build.scm:685 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:382 guix/scripts/install.scm:43
+#: guix/scripts/build.scm:711 guix/scripts/download.scm:98
+#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
 #: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
-#: guix/scripts/search.scm:34 guix/scripts/gc.scm:84 guix/scripts/hash.scm:60
-#: guix/scripts/import.scm:93 guix/scripts/import/cran.scm:47
-#: guix/scripts/pull.scm:103 guix/scripts/substitute.scm:898
-#: guix/scripts/system.scm:1035 guix/scripts/lint.scm:1180
-#: guix/scripts/publish.scm:94 guix/scripts/edit.scm:43
-#: guix/scripts/size.scm:244 guix/scripts/graph.scm:499
-#: guix/scripts/challenge.scm:241 guix/scripts/copy.scm:125
-#: guix/scripts/pack.scm:776 guix/scripts/weather.scm:270
-#: guix/scripts/describe.scm:72 guix/scripts/processes.scm:214
+#: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
+#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
+#: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
+#: guix/scripts/substitute.scm:862 guix/scripts/system.scm:990
+#: guix/scripts/lint.scm:101 guix/scripts/publish.scm:98
+#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
+#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:125 guix/scripts/pack.scm:938
+#: guix/scripts/weather.scm:273 guix/scripts/describe.scm:76
+#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:51
 #: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
@@ -1431,18 +1535,19 @@ msgstr ""
 "\n"
 "  -h, --help             afficher cette aide et quitter"
 
-#: guix/scripts/build.scm:687 guix/scripts/download.scm:85
-#: guix/scripts/package.scm:384 guix/scripts/install.scm:45
+#: guix/scripts/build.scm:713 guix/scripts/download.scm:100
+#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
 #: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
-#: guix/scripts/search.scm:36 guix/scripts/gc.scm:86 guix/scripts/hash.scm:62
-#: guix/scripts/import.scm:95 guix/scripts/import/cran.scm:51
-#: guix/scripts/pull.scm:105 guix/scripts/substitute.scm:900
-#: guix/scripts/system.scm:1037 guix/scripts/lint.scm:1184
-#: guix/scripts/publish.scm:96 guix/scripts/edit.scm:45
-#: guix/scripts/size.scm:246 guix/scripts/graph.scm:501
-#: guix/scripts/challenge.scm:243 guix/scripts/copy.scm:127
-#: guix/scripts/pack.scm:778 guix/scripts/weather.scm:272
-#: guix/scripts/describe.scm:74 guix/scripts/processes.scm:216
+#: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
+#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
+#: guix/scripts/substitute.scm:864 guix/scripts/system.scm:992
+#: guix/scripts/lint.scm:105 guix/scripts/publish.scm:100
+#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
+#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:127 guix/scripts/pack.scm:940
+#: guix/scripts/weather.scm:275 guix/scripts/describe.scm:78
+#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:53
 #: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
@@ -1451,7 +1556,7 @@ msgstr ""
 "\n"
 "  -V, --version          afficher les informations sur la version et quitter"
 
-#: guix/scripts/build.scm:714
+#: guix/scripts/build.scm:740
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -1460,27 +1565,370 @@ msgstr ""
 "argument invalide: argument en option « ~a » : ~a, ~\n"
 "doit être « package », « all » ou « transitive »~%"
 
-#: guix/scripts/build.scm:772
+#: guix/scripts/build.scm:798
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s : pas quelque chose qu'on sait compiler~%"
 
-#: guix/scripts/build.scm:837
+#: guix/scripts/build.scm:875
 #, scheme-format
-msgid "~a: warning: package '~a' has no source~%"
-msgstr "~a : attention : le paquet « ~a » n'a pas de source~%"
+msgid "package '~a' has no source~%"
+msgstr "le paquet « ~a » n'a pas de source~%"
 
-#: guix/scripts/build.scm:885
+#: guix/scripts/build.scm:921
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "aucun journal de compilation pour « ~a »~%"
 
-#: guix/discovery.scm:92
+#: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "impossible d'accéder à « ~a » : ~a~%"
 
-#: guix/scripts/download.scm:69
+#: guix/lint.scm:177
+msgid "description should not be empty"
+msgstr "la description ne devrait pas être vide"
+
+#: guix/lint.scm:188
+msgid "Texinfo markup in description is invalid"
+msgstr "Des balises Texinfo dans la description sont invalides"
+
+#: guix/lint.scm:198
+#, scheme-format
+msgid ""
+"description should not contain ~\n"
+"trademark sign '~a' at ~d"
+msgstr ""
+"la description ne devrait pas contenir ~\n"
+"le signe de marque déposée « ~a » à ~d"
+
+#. TRANSLATORS: '@code' is Texinfo markup and must be kept
+#. as is.
+#: guix/lint.scm:211
+msgid "use @code or similar ornament instead of quotes"
+msgstr "utiliser @code ou une décoration similaire au lieu des guillemets"
+
+#: guix/lint.scm:223
+msgid "description should start with an upper-case letter or digit"
+msgstr "la description devrait commencer par une majuscule ou un chiffre"
+
+#: guix/lint.scm:241
+#, scheme-format
+msgid ""
+"sentences in description should be followed ~\n"
+"by two spaces; possible infraction~p at ~{~a~^, ~}"
+msgstr ""
+"les phrases dans la description devraient être suivies ~\n"
+"par deux espaces. Infraction probable~p à ~{~a~^, ~}"
+
+#: guix/lint.scm:262
+#, scheme-format
+msgid "invalid description: ~s"
+msgstr "description invalide : ~s"
+
+#: guix/lint.scm:329
+#, scheme-format
+msgid "'~a' should probably be a native input"
+msgstr "« ~a » devrait sans doute être une entrée native"
+
+#: guix/lint.scm:344
+#, scheme-format
+msgid "'~a' should probably not be an input at all"
+msgstr "« ~a » ne devrait probablement pas être une entrée du tout"
+
+#: guix/lint.scm:365
+msgid "no period allowed at the end of the synopsis"
+msgstr "un point n'est pas autorisé à la fin du synopsis"
+
+#: guix/lint.scm:379
+msgid "no article allowed at the beginning of the synopsis"
+msgstr "les articles ne sont pas permis au début du synopsis"
+
+#: guix/lint.scm:388
+msgid "synopsis should be less than 80 characters long"
+msgstr "le synopsis devrait être plus court que 80 caractères"
+
+#: guix/lint.scm:397
+msgid "synopsis should start with an upper-case letter or digit"
+msgstr "le synopsis devrait commencer par une majuscule ou un chiffre"
+
+#: guix/lint.scm:405
+msgid "synopsis should not start with the package name"
+msgstr "le synopsis ne devrait pas commencer par un nom de paquet"
+
+#: guix/lint.scm:419
+msgid "Texinfo markup in synopsis is invalid"
+msgstr "La balise Texinfo dans le synopsis est invalide"
+
+#: guix/lint.scm:434
+msgid "synopsis should not be empty"
+msgstr "le synopsis ne devrait pas être vide"
+
+#: guix/lint.scm:444
+#, scheme-format
+msgid "invalid synopsis: ~s"
+msgstr "synopsis non valide : ~s"
+
+#: guix/lint.scm:562
+#, scheme-format
+msgid "URI ~a returned suspiciously small file (~a bytes)"
+msgstr "L'URI ~a a renvoyé un fichier étrangement petit (~a octets)"
+
+#: guix/lint.scm:571
+#, scheme-format
+msgid "permanent redirect from ~a to ~a"
+msgstr "redirection permanente de ~a vers ~a"
+
+#: guix/lint.scm:577
+#, scheme-format
+msgid "invalid permanent redirect from ~a"
+msgstr "redirection permanente invalide : ~a"
+
+#: guix/lint.scm:583 guix/lint.scm:593
+#, scheme-format
+msgid "URI ~a not reachable: ~a (~s)"
+msgstr "L'URI ~a n'a pu être atteinte : ~a (~s)"
+
+#: guix/lint.scm:599
+#, scheme-format
+msgid "URI ~a domain not found: ~a"
+msgstr "Le domaine de l'URI ~a n'a pas été trouvé : ~a"
+
+#: guix/lint.scm:605
+#, scheme-format
+msgid "URI ~a unreachable: ~a"
+msgstr "L'URI ~a n'a pu être atteinte : ~a"
+
+#: guix/lint.scm:613
+#, scheme-format
+msgid "TLS certificate error: ~a"
+msgstr "Erreur de certificat TLS : ~a"
+
+#: guix/lint.scm:640
+msgid "invalid value for home page"
+msgstr "valeur invalide pour la page d'accueil"
+
+#: guix/lint.scm:645
+#, scheme-format
+msgid "invalid home page URL: ~s"
+msgstr "URL de la page d'accueil invalide : ~s"
+
+#: guix/lint.scm:678
+msgid "file names of patches should start with the package name"
+msgstr "les noms de fichiers des correctifs devraient commencer par le nom du paquet"
+
+#: guix/lint.scm:694
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr "~a : le nom de fichier est trop long"
+
+#: guix/lint.scm:736
+#, scheme-format
+msgid "proposed synopsis: ~s~%"
+msgstr "synopsis proposé : ~s~%"
+
+#: guix/lint.scm:750
+#, scheme-format
+msgid "proposed description:~%     \"~a\"~%"
+msgstr "description proposée :~%     « ~a »~%"
+
+#: guix/lint.scm:797
+msgid "all the source URIs are unreachable:"
+msgstr "toutes les URI sources sont inatteignables :"
+
+#: guix/lint.scm:821
+msgid "the source file name should contain the package name"
+msgstr "le nom du fichier source devrait contenir le nom du paquet"
+
+#: guix/lint.scm:833
+msgid "the source URI should not be an autogenerated tarball"
+msgstr "l'URI de la source ne devrait pas être une archive auto-générée"
+
+#: guix/lint.scm:857
+#, scheme-format
+msgid "URL should be 'mirror://~a/~a'"
+msgstr "L'URL devrait être « mirror://~a/~a »"
+
+#: guix/lint.scm:902
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr "L'URL devrait être « ~a »"
+
+#: guix/lint.scm:924 guix/lint.scm:935
+#, scheme-format
+msgid "failed to create ~a derivation: ~a"
+msgstr "échec à la création de la dérivation pour ~a : ~a"
+
+#: guix/lint.scm:929 guix/lint.scm:952
+#, scheme-format
+msgid "failed to create ~a derivation: ~s"
+msgstr "échec à la création de la dérivation pour ~a : ~s"
+
+#: guix/lint.scm:966
+msgid "invalid license field"
+msgstr "champ de licence invalide"
+
+#: guix/lint.scm:973
+#, scheme-format
+msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgstr "~a : erreur HTTP GET pour ~a : ~a (~s)~%"
+
+#: guix/lint.scm:983
+#, scheme-format
+msgid "~a: host lookup failure: ~a~%"
+msgstr "~a : erreur lors de la consultation du nom d'hôte : ~a~%"
+
+#: guix/lint.scm:988
+#, scheme-format
+msgid "~a: TLS certificate error: ~a"
+msgstr "~a : erreur de certificat TLS : ~a"
+
+#: guix/lint.scm:999 guix/ui.scm:792
+#, scheme-format
+msgid "~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/lint.scm:1013
+msgid "while retrieving CVE vulnerabilities"
+msgstr "pendant la récupération des vulnérabilités CVE"
+
+#: guix/lint.scm:1056
+#, scheme-format
+msgid "probably vulnerable to ~a"
+msgstr "probablement vulnérable à ~a"
+
+#: guix/lint.scm:1063
+#, scheme-format
+msgid "while retrieving upstream info for '~a'"
+msgstr "pendant la récupération des informations en amont de « ~a »"
+
+#: guix/lint.scm:1072
+#, scheme-format
+msgid "can be upgraded to ~a"
+msgstr "peut être mis à jour vers ~a"
+
+#: guix/lint.scm:1090
+msgid "Software Heritage rate limit reached; try again later"
+msgstr "Limite de requêtes à Software Heritage atteinte ; essayez plus tard"
+
+#: guix/lint.scm:1094
+#, scheme-format
+msgid "'~a' returned ~a"
+msgstr "  « ~a » a renvoyé ~a"
+
+#. TRANSLATORS: "Software Heritage" is a proper noun
+#. that must remain untranslated.  See
+#. <https://www.softwareheritage.org>.
+#: guix/lint.scm:1133
+msgid "scheduled Software Heritage archival"
+msgstr "archivage dans Software Heritage programmé"
+
+#: guix/lint.scm:1139
+msgid "archival rate limit exceeded; try again later"
+msgstr "limite du nombre d'archivage atteinte ; essayez plus tard"
+
+#: guix/lint.scm:1151
+msgid "source not archived on Software Heritage"
+msgstr "la source n'est pas archivée dans Software Heritage"
+
+#: guix/lint.scm:1164
+msgid "while connecting to Software Heritage"
+msgstr "lors de la connexion à Software Heritage"
+
+#: guix/lint.scm:1179
+#, scheme-format
+msgid "tabulation on line ~a, column ~a"
+msgstr "tabulation à la ligne ~a, colonne ~a"
+
+#: guix/lint.scm:1191
+#, scheme-format
+msgid "trailing white space on line ~a"
+msgstr "espace à la fin de la ligne ~a"
+
+#: guix/lint.scm:1205
+#, scheme-format
+msgid "line ~a is way too long (~a characters)"
+msgstr "la ligne ~a est beaucoup trop longue (~a caractères)"
+
+#: guix/lint.scm:1219
+msgid "parentheses feel lonely, move to the previous or next line"
+msgstr "des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente"
+
+#: guix/lint.scm:1300
+msgid "Validate package descriptions"
+msgstr "Valider des descriptions de paquets"
+
+#: guix/lint.scm:1304
+msgid "Identify inputs that should be native inputs"
+msgstr "Identifier les entrées qui devraient être natives"
+
+#: guix/lint.scm:1308
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr "Identifier les entrées qui ne devraient pas être des entrées du tout"
+
+#. TRANSLATORS: <license> is the name of a data type and must not be
+#. translated.
+#: guix/lint.scm:1314
+msgid "Make sure the 'license' field is a <license> or a list thereof"
+msgstr "S'assurer que le champ « licence » est une <licence> ou une telle liste"
+
+#: guix/lint.scm:1319
+msgid "Suggest 'mirror://' URLs"
+msgstr "Suggérer des URL « mirror:// »"
+
+#: guix/lint.scm:1323
+msgid "Validate file names of sources"
+msgstr "Valider les noms des fichiers des sources"
+
+#: guix/lint.scm:1327
+msgid "Check for autogenerated tarballs"
+msgstr "Vérifier les archives auto-générées"
+
+#: guix/lint.scm:1331
+msgid "Report failure to compile a package to a derivation"
+msgstr "Signaler l'échec de la compilation d'un paquet d'une dérivation"
+
+#: guix/lint.scm:1335
+msgid "Validate file names and availability of patches"
+msgstr "Valider les noms de fichiers et la disponibilité de correctifs"
+
+#: guix/lint.scm:1339
+msgid "Look for formatting issues in the source"
+msgstr "Rechercher des problèmes de format dans la source"
+
+#: guix/lint.scm:1346
+msgid "Validate package synopses"
+msgstr "Valider les synopsis des paquets"
+
+#: guix/lint.scm:1350
+msgid "Validate synopsis & description of GNU packages"
+msgstr "Valider le synopsis et la description de paquets GNU"
+
+#: guix/lint.scm:1354
+msgid "Validate home-page URLs"
+msgstr "Valider les URL des pages d'accueil"
+
+#: guix/lint.scm:1358
+msgid "Validate source URLs"
+msgstr "Valider les URL sources"
+
+#: guix/lint.scm:1362
+msgid "Suggest GitHub URLs"
+msgstr "Suggérer des URL GitHub"
+
+#: guix/lint.scm:1366
+msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
+msgstr "Vérifier la base de données des vulnérabilités et failles connues (CVE)"
+
+#: guix/lint.scm:1371
+msgid "Check the package for new upstream releases"
+msgstr "Vérifier s'il y a une nouvelle version en amont pour le paquet"
+
+#: guix/lint.scm:1375
+msgid "Ensure source code archival on Software Heritage"
+msgstr "S'assurer que le code source est archivé dans Software Heritage"
+
+#: guix/scripts/download.scm:84
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
@@ -1497,7 +1945,7 @@ msgstr ""
 "Formats pris en charge : « nix-base32 » (par défaut), « base32 », et « base16 »\n"
 "(« hex » et « hexadecimal » peuvent aussi être utilisés).\n"
 
-#: guix/scripts/download.scm:75 guix/scripts/hash.scm:55
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -1505,7 +1953,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    écrire l'empreinte dans le FORMAT donné"
 
-#: guix/scripts/download.scm:77
+#: guix/scripts/download.scm:92
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -1515,7 +1963,7 @@ msgstr ""
 "      --no-check-certificate\n"
 "                         ne pas valider les certificats des serveurs HTTPS "
 
-#: guix/scripts/download.scm:80
+#: guix/scripts/download.scm:95
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
@@ -1523,48 +1971,42 @@ msgstr ""
 "\n"
 "  -o, --output=FICHIER   télécharge dans le FICHIER"
 
-#: guix/scripts/download.scm:103 guix/scripts/hash.scm:83
+#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "format d'empreinte non pris en charge : ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:900
-#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:890
+#: guix/scripts/download.scm:153 guix/scripts/package.scm:936
+#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A : argument superflu~%"
 
-#: guix/scripts/download.scm:146
+#: guix/scripts/download.scm:161
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "aucune URI de téléchargement spécifiée~%"
 
-#: guix/scripts/download.scm:151
+#: guix/scripts/download.scm:166
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a : impossible d'évaluer l'URI~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:176
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a : le téléchargement a échoué~%"
 
-#: guix/scripts/package.scm:115
+#: guix/scripts/package.scm:120
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "la génération ~a n'est pas supprimée car elle est actuelle~%"
 
-#: guix/scripts/package.scm:122
+#: guix/scripts/package.scm:127
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "aucune génération correspondante~%"
 
-#: guix/scripts/package.scm:125 guix/scripts/package.scm:697
-#: guix/scripts/system.scm:626
-#, scheme-format
-msgid "invalid syntax: ~a~%"
-msgstr "syntaxe non valide : ~a~%"
-
 #: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
@@ -1574,28 +2016,46 @@ msgstr "aucune action à faire~%"
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
-msgstr[0] "~a paquet dans le profile~%"
-msgstr[1] "~a paquets dans le profile~%"
+msgstr[0] "~a paquet dans le profil~%"
+msgstr[1] "~a paquets dans le profil~%"
 
-#: guix/scripts/package.scm:255
+#: guix/scripts/package.scm:254
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "le paquet « ~a » n'existe plus~%"
 
-#: guix/scripts/package.scm:301
+#: guix/scripts/package.scm:298
 #, scheme-format
-msgid "The following environment variable definitions may be needed:~%"
-msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes :~%"
+msgid ""
+"Consider setting the necessary environment\n"
+"variables by running:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Alternately, see @command{guix package --search-paths -p ~s}."
+msgstr ""
+"Pensez à paramétrer les variables d'environnement nécessaires\n"
+"en lançant :\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Autrement, regardez @command{guix package --search-paths -p ~s}."
 
-#: guix/scripts/package.scm:321
+#: guix/scripts/package.scm:326
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
 msgstr ""
-"Usage : guix package [OPTION]...\n"
+"Utilisation : guix package [OPTION]...\n"
 "Installer, supprimer ou mettre à jour les paquets en une seule transaction.\n"
 
-#: guix/scripts/package.scm:323
+#: guix/scripts/package.scm:328
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -1605,7 +2065,7 @@ msgstr ""
 "  -i, --install=PAQUET ...\n"
 "                         installer les PAQUETs"
 
-#: guix/scripts/package.scm:326
+#: guix/scripts/package.scm:331
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -1615,7 +2075,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         installer le paquet évalué par EXP"
 
-#: guix/scripts/package.scm:329
+#: guix/scripts/package.scm:334
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -1627,7 +2087,7 @@ msgstr ""
 "                         installer le paquet évalué par le code dans\n"
 "                         FICHIER"
 
-#: guix/scripts/package.scm:333
+#: guix/scripts/package.scm:338
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -1637,7 +2097,7 @@ msgstr ""
 "  -r, --remove=PAQUET ...\n"
 "                         supprimer les PAQUETs"
 
-#: guix/scripts/package.scm:336
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -1645,7 +2105,7 @@ msgstr ""
 "\n"
 "  -u, --upgrade[=REGEXP] mettre à jour tous les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:338
+#: guix/scripts/package.scm:343
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -1655,7 +2115,7 @@ msgstr ""
 "  -m, --manifest=FICHIER créer une nouvelle génération de profil avec le\n"
 "                         manifeste dans FICHIER"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:346
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -1663,7 +2123,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] ne pas mettre à jour les paquets correspondant à REGEXP"
 
-#: guix/scripts/package.scm:343
+#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -1671,7 +2131,7 @@ msgstr ""
 "\n"
 "      --roll-back        revenir à la génération antérieure"
 
-#: guix/scripts/package.scm:345
+#: guix/scripts/package.scm:350
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -1681,7 +2141,7 @@ msgstr ""
 "      --search-paths=[GENRE]\n"
 "                         afficher les définitions de variables d'environnement requises"
 
-#: guix/scripts/package.scm:348 guix/scripts/pull.scm:90
+#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -1691,7 +2151,7 @@ msgstr ""
 "  -l, --list-generations[=MOTIF]\n"
 "                         lister les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -1701,7 +2161,7 @@ msgstr ""
 "  -d, --delete-generations[=MOTIF]\n"
 "                         supprimer les générations correspondant à MOTIF"
 
-#: guix/scripts/package.scm:354
+#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -1711,7 +2171,7 @@ msgstr ""
 "  -S, --switch-generation=MOTIF\n"
 "                         basculer vers une génération correspondant à MOTIF"
 
-#: guix/scripts/package.scm:357 guix/scripts/install.scm:33
+#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
 #: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
 msgid ""
 "\n"
@@ -1720,7 +2180,15 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   utiliser PROFIL au lieu du profil par défaut de l'utilisateur"
 
-#: guix/scripts/package.scm:360
+#: guix/scripts/package.scm:364
+msgid ""
+"\n"
+"      --list-profiles    list the user's profiles"
+msgstr ""
+"\n"
+"      --list-profiles    lister les profils de l'utilisateur"
+
+#: guix/scripts/package.scm:367
 msgid ""
 "\n"
 "      --allow-collisions do not treat collisions in the profile as an error"
@@ -1728,7 +2196,7 @@ msgstr ""
 "\n"
 "      --allow-collisions ne pas traiter les collisions dans le profil comme une erreur"
 
-#: guix/scripts/package.scm:362
+#: guix/scripts/package.scm:369
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
@@ -1736,7 +2204,7 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le profil"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:374
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -1744,7 +2212,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    chercher dans le synopsis et la description en utilisant REGEXP"
 
-#: guix/scripts/package.scm:369
+#: guix/scripts/package.scm:376
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -1754,7 +2222,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lister les paquets installés correspondant à REGEXP"
 
-#: guix/scripts/package.scm:372
+#: guix/scripts/package.scm:379
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -1764,7 +2232,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lister les paquets disponibles correspondant à REGEXP"
 
-#: guix/scripts/package.scm:375
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -1772,41 +2240,36 @@ msgstr ""
 "\n"
 "      --show=PAQUET      montrer des détails du PAQUET"
 
-#: guix/scripts/package.scm:427
+#: guix/scripts/package.scm:434
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "l'expression régulière « ~a » ressemble à une option de la ligne de commande~%"
 
-#: guix/scripts/package.scm:430
+#: guix/scripts/package.scm:437
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "est-ce intentionnel ?~%"
 
-#: guix/scripts/package.scm:475
+#: guix/scripts/package.scm:487
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a : type de chemin de recherche non pris en charge~%"
 
-#: guix/scripts/package.scm:771
+#: guix/scripts/package.scm:620
+#, scheme-format
+msgid "cannot install non-package object: ~s~%"
+msgstr "impossible d'installer un objet qui n'est pas un paquet : ~s~%"
+
+#: guix/scripts/package.scm:792
 #, scheme-format
 msgid "~a~@[@~a~]: package not found~%"
 msgstr "~a~@[@~a~] : paquet introuvable~%"
 
-#: guix/scripts/package.scm:805
+#: guix/scripts/package.scm:826 guix/scripts/pull.scm:693
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "impossible de passer à la génération « ~a »~%"
 
-#: guix/scripts/package.scm:822
-#, scheme-format
-msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%"
-
-#: guix/scripts/package.scm:824
-#, scheme-format
-msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%"
-
 #: guix/scripts/install.scm:30
 msgid ""
 "Usage: guix install [OPTION] PACKAGES...\n"
@@ -1837,7 +2300,7 @@ msgstr ""
 "Mettre à jour les paquets qui correspondent à REGEXP.\n"
 "C'est un alias pour la commande « guix package -u ».\n"
 
-#: guix/scripts/search.scm:29
+#: guix/scripts/search.scm:31
 msgid ""
 "Usage: guix search [OPTION] REGEXPS...\n"
 "Search for packages matching REGEXPS."
@@ -1845,7 +2308,7 @@ msgstr ""
 "Utilisation : guix search [OPTION] REGEXPS…\n"
 "Rechercher les paquets qui correspondent à REGEXPS."
 
-#: guix/scripts/search.scm:31
+#: guix/scripts/search.scm:33
 msgid ""
 "\n"
 "This is an alias for 'guix package -s'.\n"
@@ -1853,20 +2316,41 @@ msgstr ""
 "\n"
 "C'est un alias pour la commande « guix package -s ».\n"
 
-#: guix/scripts/search.scm:65
+#: guix/scripts/search.scm:74
 #, scheme-format
 msgid "missing arguments: no regular expressions to search for~%"
 msgstr "arguments manquants : par d'expression régulière à rechercher~%"
 
-#: guix/scripts/gc.scm:45
+#: guix/scripts/show.scm:31
+msgid ""
+"Usage: guix show [OPTION] PACKAGE...\n"
+"Show details about PACKAGE."
+msgstr ""
+"Utilisation : guix show [OPTION] PAQUET...\n"
+"Montre les détails du PAQUET."
+
+#: guix/scripts/show.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package --show='.\n"
+msgstr ""
+"\n"
+"C'est un alias pour la commande « guix package --show= ».\n"
+
+#: guix/scripts/show.scm:74
+#, scheme-format
+msgid "missing arguments: no package to show~%"
+msgstr "arguments manquants : par de paquet à montrer~%"
+
+#: guix/scripts/gc.scm:47
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
 msgstr ""
-"Usage : guix gc [OPTION]... CHEMINS...\n"
+"Utilisation : guix gc [OPTION]... CHEMINS...\n"
 "Appeler le ramasse-miettes (GC).\n"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -1876,7 +2360,7 @@ msgstr ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         collecter au moins MIN octets dans le ramasse-miettes"
 
-#: guix/scripts/gc.scm:50
+#: guix/scripts/gc.scm:52
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
@@ -1884,7 +2368,7 @@ msgstr ""
 "\n"
 "  -F, --free-space=LIBRE essayer d'atteindre LIBRE espace dans le dépôt"
 
-#: guix/scripts/gc.scm:52
+#: guix/scripts/gc.scm:54
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -1894,7 +2378,7 @@ msgstr ""
 "  -d, --delete-generations[=MOTIF]\n"
 "                         supprimer les générations correspondant à MOTIF"
 
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:57
 msgid ""
 "\n"
 "  -D, --delete           attempt to delete PATHS"
@@ -1902,7 +2386,7 @@ msgstr ""
 "\n"
 "  -D, --delete           essayer de supprimer les CHEMINS"
 
-#: guix/scripts/gc.scm:57
+#: guix/scripts/gc.scm:59
 msgid ""
 "\n"
 "      --list-roots       list the user's garbage collector roots"
@@ -1910,7 +2394,15 @@ msgstr ""
 "\n"
 "      --list-roots       lister les racine du ramasse-miettes pour l'utilisateur"
 
-#: guix/scripts/gc.scm:59
+#: guix/scripts/gc.scm:61
+msgid ""
+"\n"
+"      --list-busy        list store items used by running processes"
+msgstr ""
+"\n"
+"      --list-busy        lister les éléments du dépôt utilisés par des processus lancés"
+
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
@@ -1918,7 +2410,7 @@ msgstr ""
 "\n"
 "      --optimize         optimise le dépôt en supprimant les doublons des fichiers identiques"
 
-#: guix/scripts/gc.scm:61
+#: guix/scripts/gc.scm:65
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -1926,7 +2418,7 @@ msgstr ""
 "\n"
 "      --list-dead        lister les chemins non valides"
 
-#: guix/scripts/gc.scm:63
+#: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -1934,7 +2426,7 @@ msgstr ""
 "\n"
 "      --list-live        lister les chemins valides"
 
-#: guix/scripts/gc.scm:66
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -1942,7 +2434,7 @@ msgstr ""
 "\n"
 "      --references       lister les références de CHEMINS"
 
-#: guix/scripts/gc.scm:68
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -1950,7 +2442,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       lister les prérequis de CHEMINS"
 
-#: guix/scripts/gc.scm:70
+#: guix/scripts/gc.scm:74
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -1958,7 +2450,7 @@ msgstr ""
 "\n"
 "      --referrers        lister les référents de CHEMINS"
 
-#: guix/scripts/gc.scm:72
+#: guix/scripts/gc.scm:76
 msgid ""
 "\n"
 "      --derivers         list the derivers of PATHS"
@@ -1966,7 +2458,7 @@ msgstr ""
 "\n"
 "      --derivers        lister les dérivations menant à CHEMINS"
 
-#: guix/scripts/gc.scm:75
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
@@ -1978,7 +2470,7 @@ msgstr ""
 "                         combinaison de « repair » et « contents » séparés\n"
 "                         par une virgule"
 
-#: guix/scripts/gc.scm:79
+#: guix/scripts/gc.scm:83
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
@@ -1986,7 +2478,7 @@ msgstr ""
 "\n"
 "      --list-failures    lister les échecs de compilation en cache"
 
-#: guix/scripts/gc.scm:81
+#: guix/scripts/gc.scm:85
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
@@ -1994,40 +2486,40 @@ msgstr ""
 "\n"
 "      --clear-failures   supprimer CHEMINS de l'ensemble des échecs en cache"
 
-#: guix/scripts/gc.scm:95
+#: guix/scripts/gc.scm:99
 #, scheme-format
 msgid "~a: invalid '--verify' option~%"
 msgstr "~a : option « --verify » invalide~%"
 
-#: guix/scripts/gc.scm:135
+#: guix/scripts/gc.scm:142
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "quantité de stockage non valide : ~a~%"
 
-#: guix/scripts/gc.scm:149
+#: guix/scripts/gc.scm:156
 #, scheme-format
 msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
 msgstr "l'utilisation de « -d » pour « --delete » est obsolète. Utilisez plutôt « -D »~%"
 
-#: guix/scripts/gc.scm:156
+#: guix/scripts/gc.scm:163
 #, scheme-format
 msgid "~s does not denote a duration~%"
 msgstr "« ~s » ne correspond pas à une durée~%"
 
-#: guix/scripts/gc.scm:239
+#: guix/scripts/gc.scm:249
 msgid "already ~h MiBs available on ~a, nothing to do~%"
 msgstr "déjà ~h Mo disponibles sur ~a, rien à faire~%"
 
-#: guix/scripts/gc.scm:242
+#: guix/scripts/gc.scm:252
 msgid "freeing ~h MiBs~%"
 msgstr "libération de ~h Mo~%"
 
-#: guix/scripts/gc.scm:275
+#: guix/scripts/gc.scm:291
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "arguments superflus : ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:299 guix/scripts/gc.scm:302
+#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
 msgid "freed ~h MiBs~%"
 msgstr "~h Mo libérés~%"
 
@@ -2039,7 +2531,7 @@ msgid ""
 "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
 "and 'hexadecimal' can be used as well).\n"
 msgstr ""
-"Usage : guix hash [OPTION] FICHIER\n"
+"Utilisation : guix hash [OPTION] FICHIER\n"
 "Retourner l'empreinte cryptographique du FICHIER.\n"
 "\n"
 "Formats pris en charge : « nix-base32 » (par défaut), « base32 », et « base16 » (« hex »\n"
@@ -2061,43 +2553,42 @@ msgstr ""
 "\n"
 "  -r, --recursive        calculer l'empreinte de FICHIER de manière récursive"
 
-#: guix/scripts/hash.scm:151 guix/ui.scm:445 guix/ui.scm:452 guix/ui.scm:477
-#: guix/ui.scm:787 guix/ui.scm:809 guix/ui.scm:815 guix/ui.scm:821
-#: guix/ui.scm:874
+#: guix/scripts/hash.scm:151 guix/ui.scm:389 guix/ui.scm:414 guix/ui.scm:741
+#: guix/ui.scm:763 guix/ui.scm:769 guix/ui.scm:786 guix/ui.scm:839
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1213
-#: guix/scripts/system.scm:1223 guix/scripts/system.scm:1230
-#: guix/scripts/system.scm:1237
+#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1204
+#: guix/scripts/system.scm:1220 guix/scripts/system.scm:1227
+#: guix/scripts/system.scm:1233
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "nombre d'arguments incorrect~%"
 
-#: guix/scripts/import.scm:87
+#: guix/scripts/import.scm:88
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
-"Usage : guix import IMPORTATEUR ARGS...\n"
+"Utilisation : guix import IMPORTATEUR ARGS...\n"
 "Lancer IMPORTATEUR avec ARGS.\n"
 
-#: guix/scripts/import.scm:90
+#: guix/scripts/import.scm:91
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTATEUR doit être un des importateurs listés ci-dessous:\n"
 
-#: guix/scripts/import.scm:104
+#: guix/scripts/import.scm:105
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: nom d'importateur absent~%"
 
-#: guix/scripts/import.scm:124
+#: guix/scripts/import.scm:126
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "l'importateur « ~a » a échoué~%"
 
-#: guix/scripts/import.scm:125
+#: guix/scripts/import.scm:127
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a : importateur non valide~%"
@@ -2107,7 +2598,7 @@ msgid ""
 "Usage: guix import cran PACKAGE-NAME\n"
 "Import and convert the CRAN package for PACKAGE-NAME.\n"
 msgstr ""
-"Usage : guix import cran NOM-DU-PAQUET\n"
+"Utilisation : guix import cran NOM-DU-PAQUET\n"
 "Importer et convertir le paquet CAN pour NOM-DU-PAQUET.\n"
 
 #: guix/scripts/import/cran.scm:45
@@ -2126,30 +2617,30 @@ msgstr ""
 "\n"
 "  -r, --recursive        importer les paquets de manière récursive"
 
-#: guix/scripts/import/cran.scm:112
+#: guix/scripts/import/cran.scm:106
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
 msgstr "échec lors du téléchargement de la description du paquet « ~a »~%"
 
-#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:113
+#: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "too few arguments~%"
 msgstr "trop peu d'arguments~%"
 
-#: guix/scripts/import/cran.scm:118 guix/scripts/import/elpa.scm:115
+#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112
 #, scheme-format
 msgid "too many arguments~%"
 msgstr "trop d'arguments~%"
 
-#: guix/scripts/import/elpa.scm:44
+#: guix/scripts/import/elpa.scm:43
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
-"Usage : guix import elpa NOM-DU-PAQUET\n"
+"Utilisation : guix import elpa NOM-DU-PAQUET\n"
 "Importer le dernier paquet nommé NOM-DU-PAQUET d'un dépôt ELPA.\n"
 
-#: guix/scripts/import/elpa.scm:46
+#: guix/scripts/import/elpa.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
@@ -2157,7 +2648,7 @@ msgstr ""
 "\n"
 "  -a, --archive=ARCHIVE          spécifier le dépôt de l'archive"
 
-#: guix/scripts/import/elpa.scm:48
+#: guix/scripts/import/elpa.scm:47
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
@@ -2165,7 +2656,7 @@ msgstr ""
 "\n"
 "  -h, --help                     afficher cette aide et quitter"
 
-#: guix/scripts/import/elpa.scm:50
+#: guix/scripts/import/elpa.scm:49
 msgid ""
 "\n"
 "  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
@@ -2173,7 +2664,7 @@ msgstr ""
 "\n"
 "  -r, --recursive                générer des expressions de paquets pour tous les paquets Emacs qui ne sont pas encore dans Guix"
 
-#: guix/scripts/import/elpa.scm:52
+#: guix/scripts/import/elpa.scm:51
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
@@ -2181,28 +2672,20 @@ msgstr ""
 "\n"
 "  -V, --version                  afficher les informations sur la version et quitter"
 
-#: guix/scripts/import/elpa.scm:110
+#: guix/scripts/import/elpa.scm:107
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr "échec lors du téléchargement du paquet « ~a »~%"
 
-#: guix/scripts/pull.scm:76
+#: guix/scripts/pull.scm:87
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
 msgstr ""
-"Usage : guix pull [OPTION]...\n"
+"Utilisation : guix pull [OPTION]...\n"
 "Télécharger et déployer la dernière version de Guix.\n"
 
-#: guix/scripts/pull.scm:78
-msgid ""
-"\n"
-"      --verbose          produce verbose output"
-msgstr ""
-"\n"
-"      --verbose          produire une sortie verbeuse"
-
-#: guix/scripts/pull.scm:80
+#: guix/scripts/pull.scm:89
 msgid ""
 "\n"
 "  -C, --channels=FILE    deploy the channels defined in FILE"
@@ -2210,7 +2693,7 @@ msgstr ""
 "\n"
 "  -C, --channels=FICHIER déploie les canaux définis dans FICHIER"
 
-#: guix/scripts/pull.scm:82
+#: guix/scripts/pull.scm:91
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -2218,7 +2701,7 @@ msgstr ""
 "\n"
 "      --url=URL          télécharger le dépôt Git depuis URL"
 
-#: guix/scripts/pull.scm:84
+#: guix/scripts/pull.scm:93
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -2226,7 +2709,7 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    télécharger le COMMIT indiqué"
 
-#: guix/scripts/pull.scm:86
+#: guix/scripts/pull.scm:95
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
@@ -2234,7 +2717,7 @@ msgstr ""
 "\n"
 "      --branch=BRANCHE   télécharger le bout de la BRANCHE indiquée"
 
-#: guix/scripts/pull.scm:88
+#: guix/scripts/pull.scm:97
 msgid ""
 "\n"
 "  -N, --news             display news compared to the previous generation"
@@ -2242,7 +2725,7 @@ msgstr ""
 "\n"
 "  -N, --news             affiche les nouveautés par rapport à la génération précédente"
 
-#: guix/scripts/pull.scm:93
+#: guix/scripts/pull.scm:110
 #, scheme-format
 msgid ""
 "\n"
@@ -2251,7 +2734,7 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   utiliser PROFIL au lieu de ~/.config/guix/current"
 
-#: guix/scripts/pull.scm:99
+#: guix/scripts/pull.scm:116
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
@@ -2259,11 +2742,47 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser le programme d'amorçage Guile pour compiler le nouveau Guix"
 
-#: guix/scripts/pull.scm:196
+#: guix/scripts/pull.scm:217
 msgid "New in this revision:\n"
 msgstr "Nouveautés de cette révision :\n"
 
-#: guix/scripts/pull.scm:225
+#. TRANSLATORS: This describes a "channel"; the first placeholder is
+#. the channel name (e.g., "guix") and the second placeholder is its
+#. URL.
+#: guix/scripts/pull.scm:226
+#, scheme-format
+msgid "    ~a at ~a~%"
+msgstr "    ~a à l'adresse ~a~%"
+
+#: guix/scripts/pull.scm:264
+#, scheme-format
+msgid "    commit ~a~%"
+msgstr "    commit ~a~%"
+
+#: guix/scripts/pull.scm:301
+#, scheme-format
+msgid "News for channel '~a'~%"
+msgstr "Nouveauté du canal « ~a »~%"
+
+#: guix/scripts/pull.scm:327
+#, scheme-format
+msgid "  ~a new channel:~%"
+msgid_plural "  ~a new channels:~%"
+msgstr[0] "  ~a nouveau canal :~%"
+msgstr[1] "  ~a nouveaux canaux :~%"
+
+#: guix/scripts/pull.scm:337
+#, scheme-format
+msgid "  ~a channel removed:~%"
+msgid_plural "  ~a channels removed:~%"
+msgstr[0] "  ~a canal supprimé:~%"
+msgstr[1] "  ~a canaux supprimés:~%"
+
+#: guix/scripts/pull.scm:416
+msgid "Run @command{guix pull --news} to read all the news."
+msgstr "Lancez @command{guix pull --news} pour lire les nouveautés."
+
+#: guix/scripts/pull.scm:424
 #, scheme-format
 msgid ""
 "After setting @code{PATH}, run\n"
@@ -2272,67 +2791,44 @@ msgstr ""
 "Après avoir paramétré @code{PATH}, lancez\n"
 "@command{hash guix} pour vous assurez que votre shell se réfère à @file{~a}."
 
-#: guix/scripts/pull.scm:250
+#: guix/scripts/pull.scm:449
 #, scheme-format
 msgid "Git error ~a~%"
 msgstr "Erreur Git : ~a~%"
 
-#: guix/scripts/pull.scm:252 guix/git.scm:306
+#: guix/scripts/pull.scm:451 guix/git.scm:364
 #, scheme-format
 msgid "Git error: ~a~%"
 msgstr "Erreur Git : ~a~%"
 
-#: guix/scripts/pull.scm:277
+#: guix/scripts/pull.scm:476
 #, scheme-format
 msgid "Migrating profile generations to '~a'...~%"
 msgstr "Migration des générations du profil vers « ~a »...~%"
 
-#: guix/scripts/pull.scm:312
+#: guix/scripts/pull.scm:518
 #, scheme-format
 msgid "while creating symlink '~a': ~a~%"
 msgstr "pendant la création du lien symbolique « ~a » : ~a ~%"
 
-#: guix/scripts/pull.scm:334
-#, scheme-format
-msgid "    repository URL: ~a~%"
-msgstr "    URL du dépôt : ~a~%"
-
-#: guix/scripts/pull.scm:336
-#, scheme-format
-msgid "    branch: ~a~%"
-msgstr "    branche: ~a~%"
-
-#: guix/scripts/pull.scm:337
-#, scheme-format
-msgid "    commit: ~a~%"
-msgstr "    commit : ~a~%"
-
-#: guix/scripts/pull.scm:439
+#: guix/scripts/pull.scm:620
 msgid "  ~h new package: ~a~%"
 msgid_plural "  ~h new packages: ~a~%"
 msgstr[0] "  ~h nouveau paquet : ~a~%"
 msgstr[1] "  ~h nouveaux paquets : ~a~%"
 
-#: guix/scripts/pull.scm:447
+#: guix/scripts/pull.scm:628
 msgid "  ~h package upgraded: ~a~%"
 msgid_plural "  ~h packages upgraded: ~a~%"
 msgstr[0] "  ~h paquet mis à jour : ~a~%"
 msgstr[1] "  ~h paquets mis à jour : ~a~%"
 
-#: guix/scripts/pull.scm:456
-msgid ""
-"Run @command{guix pull --news} to view the complete\n"
-"list of package changes."
-msgstr ""
-"Lancez @command{guix pull --news} pour voir la liste complète\n"
-"des paquets modifiés."
-
-#: guix/scripts/pull.scm:520
+#: guix/scripts/pull.scm:717
 #, scheme-format
 msgid "'~a' did not return a list of channels~%"
 msgstr "« ~a » n'a pas renvoyé une liste de canaux~%"
 
-#: guix/scripts/pull.scm:534
+#: guix/scripts/pull.scm:733
 #, scheme-format
 msgid ""
 "The 'GUIX_PULL_URL' environment variable is deprecated.\n"
@@ -2341,127 +2837,102 @@ msgstr ""
 "La variable d'environnement « GUIX_PULL_URL » est obsolète.\n"
 "Utilisez « ~/.config/guix/channels.scm » à la place."
 
-#: guix/scripts/pull.scm:583
+#: guix/scripts/pull.scm:782
 #, scheme-format
 msgid "Building from this channel:~%"
 msgid_plural "Building from these channels:~%"
 msgstr[0] "Construction depuis ce canal :~%"
 msgstr[1] "Construction depuis ces canaux :~%"
 
-#: guix/scripts/substitute.scm:126
+#: guix/scripts/substitute.scm:124
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr "authentification et autorisation des substituts désactivées !~%"
 
-#: guix/scripts/substitute.scm:201
+#: guix/scripts/substitute.scm:210
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "le téléchargement depuis « ~a » a échoué : ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:214
+#: guix/scripts/substitute.scm:223
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
 msgstr "pendant la récupération de ~a : le serveur est plutôt lent~%"
 
-#: guix/scripts/substitute.scm:216
+#: guix/scripts/substitute.scm:225
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr "essayez l'option « --no-substitutes » si le problème persiste~%"
 
-#: guix/scripts/substitute.scm:226
+#: guix/scripts/substitute.scm:235
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
 msgstr "schéma de substitution d'URI non pris en charge : ~a~%"
 
-#: guix/scripts/substitute.scm:261
-#, scheme-format
-msgid "while fetching '~a': ~a (~s)~%"
-msgstr "pendant la récupération de « ~a » : ~a (~s)~%"
-
-#: guix/scripts/substitute.scm:266
-#, scheme-format
-msgid "ignoring substitute server at '~s'~%"
-msgstr "ignore le serveur de substitution à « ~s »~%"
-
-#: guix/scripts/substitute.scm:316
+#: guix/scripts/substitute.scm:274
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr "la version de la signature doit être un nombre: ~s~%"
 
-#: guix/scripts/substitute.scm:320
+#: guix/scripts/substitute.scm:278
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "version de signature non prise en charge : ~a~%"
 
-#: guix/scripts/substitute.scm:328
+#: guix/scripts/substitute.scm:286
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr "la signature n'est pas une s-expression valide : ~s~%"
 
-#: guix/scripts/substitute.scm:332
+#: guix/scripts/substitute.scm:290
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr "format invalide du champ de signature : ~a~%"
 
-#: guix/scripts/substitute.scm:367
+#: guix/scripts/substitute.scm:418
 #, scheme-format
-msgid "invalid signature for '~a'~%"
-msgstr "signature non valide pour « ~a »~%"
-
-#: guix/scripts/substitute.scm:369
-#, scheme-format
-msgid "hash mismatch for '~a'~%"
-msgstr "l'empreinte ne correspond pas pour « ~a »~%"
-
-#: guix/scripts/substitute.scm:371
-#, scheme-format
-msgid "'~a' is signed with an unauthorized key~%"
-msgstr "« ~a » est signé avec une clé non autorisée~%"
+msgid "'~a' does not name a store item~%"
+msgstr "« ~a » ne nomme pas un élément du stockage~%"
 
-#: guix/scripts/substitute.scm:373
+#: guix/scripts/substitute.scm:603
 #, scheme-format
-msgid "signature on '~a' is corrupt~%"
-msgstr "la signature de « ~a » est corrompue~%"
+msgid "~a: host not found: ~a~%"
+msgstr "~a : hôte non trouvé : ~a~%"
 
-#: guix/scripts/substitute.scm:467
+#: guix/scripts/substitute.scm:609
 #, scheme-format
-msgid "'~a' does not name a store item~%"
-msgstr "« ~a » ne nomme pas un élément du stockage~%"
+msgid "~a: connection failed: ~a~%"
+msgstr "~a : la connexion à échouée : ~a~%"
 
-#: guix/scripts/substitute.scm:629
+#: guix/scripts/substitute.scm:625
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "mise à jour des substituts depuis « ~a »... ~5,1f %"
 
-#: guix/scripts/substitute.scm:693
+#: guix/scripts/substitute.scm:696
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s : schéma d'URI du serveur non pris en charge~%"
 
-#: guix/scripts/substitute.scm:703
-#, scheme-format
-msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%"
-
-#: guix/scripts/substitute.scm:872
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erreur lors de la consultation du nom d'hôte : ~a~%"
 
-#: guix/scripts/substitute.scm:877
+#: guix/scripts/substitute.scm:841
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "Erreur TLS dans la procédure « ~a » : ~a~%"
 
-#: guix/scripts/substitute.scm:888
+#: guix/scripts/substitute.scm:852
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
-"Usage : guix substitute [OPTION]...\n"
+"Utilisation : guix substitute [OPTION]...\n"
 "Outil interne pour substituer un binaire pré-compilé à une compilation locale.\n"
 
-#: guix/scripts/substitute.scm:890
+#: guix/scripts/substitute.scm:854
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -2472,7 +2943,7 @@ msgstr ""
 "                         noms de fichiers de dépôt passés sur l'entrée\n"
 "                         standard"
 
-#: guix/scripts/substitute.scm:893
+#: guix/scripts/substitute.scm:857
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -2484,26 +2955,26 @@ msgstr ""
 "                         télécharger FICHIER-DÉPÔT et l'enregistrer comme un Nar\n"
 "                         dans le fichier DESTINATION"
 
-#: guix/scripts/substitute.scm:958
+#: guix/scripts/substitute.scm:978
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "pas de substitut valide pour « ~a »~%"
 
-#: guix/scripts/substitute.scm:966
+#: guix/scripts/substitute.scm:988
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Téléchargement de « ~a »...~%"
 
-#: guix/scripts/substitute.scm:1028
+#: guix/scripts/substitute.scm:1048
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "L'ACL pour l'import d'archives ne semble pas initialisée ; les substituts pourraient être indisponibles\n"
 
-#: guix/scripts/substitute.scm:1082
+#: guix/scripts/substitute.scm:1102
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a : URI invalide~%"
 
-#: guix/scripts/substitute.scm:1153
+#: guix/scripts/substitute.scm:1173
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a : options non reconnues~%"
@@ -2534,7 +3005,7 @@ msgid ""
 "Sign or verify the signature on the given file.  This tool is meant to\n"
 "be used internally by 'guix-daemon'.\n"
 msgstr ""
-"Usage : guix authenticate OPTION...\n"
+"Utilisation : guix authenticate OPTION...\n"
 "Signer ou vérifier la signature du fichier donné. Cet outil est destiné\n"
 "à être utilisé en interne par « guix-daemon ».\n"
 
@@ -2542,120 +3013,112 @@ msgstr ""
 msgid "wrong arguments"
 msgstr "mauvais arguments"
 
-#: guix/scripts/system.scm:150
+#: guix/scripts/system.scm:154
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "impossible d'enregistrer « ~a » sous « ~a »~%"
 
-#: guix/scripts/system.scm:165
+#: guix/scripts/system.scm:169
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copie vers « ~a »..."
 
-#: guix/scripts/system.scm:206
-#, scheme-format
-msgid "failed to install bootloader ~a~%"
-msgstr "impossible d'installer le chargeur de démarrage : ~a~%"
-
-#: guix/scripts/system.scm:226
+#: guix/scripts/system.scm:196
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "initialisation du système de fichier racine courant~%"
 
-#: guix/scripts/system.scm:240
+#: guix/scripts/system.scm:210
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "n'est pas exécuté en tant que « root » donc le propriétaire de « ~a » pourrait être incorrect !~%"
 
-#: guix/scripts/system.scm:292
+#: guix/scripts/system.scm:240 guix/scripts/system.scm:757
+#: guix/scripts/system.scm:862
+#, scheme-format
+msgid "bootloader successfully installed on '~a'~%"
+msgstr "chargeur d'amorçage correctement installé sur « ~a »~%"
+
+#: guix/scripts/system.scm:263
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "en parlant au shepherd : ~a~%"
 
-#: guix/scripts/system.scm:299
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "service: « ~a » introuvable~%"
 
-#: guix/scripts/system.scm:302
+#: guix/scripts/system.scm:273
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "le service « ~a » n'a pas d'action « ~a »~%"
 
-#: guix/scripts/system.scm:306
+#: guix/scripts/system.scm:277
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "exception interceptée pendant l'exécution de « ~a » sur le service « ~a »:~%"
 
-#: guix/scripts/system.scm:314
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "quelque chose s'est mal passé : ~s~%"
 
-#: guix/scripts/system.scm:317
+#: guix/scripts/system.scm:288
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "erreur du shepherd~%"
 
-#: guix/scripts/system.scm:334
+#: guix/scripts/system.scm:305
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
 msgstr "erreur en essayant d'obtenir la liste des services du shepherd~%"
 
-#: guix/scripts/system.scm:354
-#, scheme-format
-msgid "unloading service '~a'...~%"
-msgstr "déchargement du service « ~a »...~%"
-
-#: guix/scripts/system.scm:363
-#, scheme-format
-msgid "loading new services:~{ ~a~}...~%"
-msgstr "chargement des nouveaux services :~{ ~a~}...~%"
-
 #: guix/scripts/system.scm:368
-msgid ""
-"To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
-"upgrade, and restart each service that was not automatically restarted.\n"
-msgstr ""
-"Pour compléter la mise à jour, lancez « herd restart SERVICE » pour arrêter,\n"
-"mettre à jour et redémarrer tous les services qui n'ont pas été redémarrés\n"
-"automatiquement.\n"
-
-#: guix/scripts/system.scm:395
-#, scheme-format
-msgid "activating system...~%"
-msgstr "activation du système...~%"
-
-#: guix/scripts/system.scm:473
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "impossible de passer à la génération « ~a » du système~%"
 
-#: guix/scripts/system.scm:546
+#: guix/scripts/system.scm:438
 msgid "the DAG of services"
 msgstr "le graphe orienté acyclique (DAG) des services"
 
-#: guix/scripts/system.scm:559
+#: guix/scripts/system.scm:451
 msgid "the dependency graph of shepherd services"
 msgstr "le graphique des dépendances des services du shepherd"
 
-#: guix/scripts/system.scm:583
+#: guix/scripts/system.scm:477
+#, scheme-format
+msgid "      repository URL: ~a~%"
+msgstr "      URL du dépôt : ~a~%"
+
+#: guix/scripts/system.scm:479
+#, scheme-format
+msgid "      branch: ~a~%"
+msgstr "      branche : ~a~%"
+
+#: guix/scripts/system.scm:480
+#, scheme-format
+msgid "      commit: ~a~%"
+msgstr "      commit : ~a~%"
+
+#: guix/scripts/system.scm:502
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  nom de fichier: ~a~%"
 
-#: guix/scripts/system.scm:584
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  nom de fichier canonique : ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:586
+#: guix/scripts/system.scm:505
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  étiquette : ~a~%"
 
-#: guix/scripts/system.scm:587
+#: guix/scripts/system.scm:506
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  chargeur de démarrage : ~a~%"
@@ -2668,22 +3131,34 @@ msgstr "  chargeur de démarrage : ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:597
+#: guix/scripts/system.scm:516
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  périphérique racine : ~[UUID : ~a~;étiquette : ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:608
+#: guix/scripts/system.scm:527
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  noyau : ~a~%"
 
-#: guix/scripts/system.scm:679
+#. TRANSLATORS: Here "channel" is the same terminology as used in
+#. "guix describe" and "guix pull --channels".
+#: guix/scripts/system.scm:537
+#, scheme-format
+msgid "  channels:~%"
+msgstr "  canaux :~%"
+
+#: guix/scripts/system.scm:540
+#, scheme-format
+msgid "  configuration file: ~a~%"
+msgstr "  fichier de configuration : ~a~%"
+
+#: guix/scripts/system.scm:612
 #, scheme-format
 msgid "~a: error: device '~a' not found: ~a~%"
 msgstr "~a : erreur : périphérique « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/system.scm:683
+#: guix/scripts/system.scm:616
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -2692,111 +3167,120 @@ msgstr ""
 "Si « ~a » est une étiquette de système de fichiers, écrivez\n"
 "@code{(file-system-label ~s)} dans votre champ @code{device}."
 
-#: guix/scripts/system.scm:691
+#: guix/scripts/system.scm:624
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
 msgstr "~a : erreur : le système de fichier étiqueté « ~a » est introuvable~%"
 
-#: guix/scripts/system.scm:696
+#: guix/scripts/system.scm:629
 #, scheme-format
 msgid "~a: error: file system with UUID '~a' not found~%"
 msgstr "~a : erreur : le système de fichier avec l'UUID « ~a » est introuvable~%"
 
-#: guix/scripts/system.scm:797
+#: guix/scripts/system.scm:734
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
 msgstr "~a pas trouvé : « guix pull » n'a jamais été exécuté~%"
 
-#: guix/scripts/system.scm:798
+#: guix/scripts/system.scm:735
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Envisagez d'exécuter « guix pull » avant « reconfigure ».~%"
 
-#: guix/scripts/system.scm:799
+#: guix/scripts/system.scm:736
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Si vous ne le faites pas, votre système pourrait être amené à une version inférieure !~%"
 
-#: guix/scripts/system.scm:920
+#: guix/scripts/system.scm:855
+#, scheme-format
+msgid "activating system...~%"
+msgstr "activation du système...~%"
+
+#: guix/scripts/system.scm:868
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "initialisation du système d'exploitation sous « ~a »...~%"
 
-#: guix/scripts/system.scm:965
+#: guix/scripts/system.scm:912
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
 "Some ACTIONS support additional ARGS.\n"
 msgstr ""
-"Usage : guix system [OPTION ...] ACTION [ARG ...] [FICHIER]\n"
+"Utilisation : guix system [OPTION ...] ACTION [ARG ...] [FICHIER]\n"
 "Compiler le système d'exploitation déclaré dans FICHER en suivant ACTION.\n"
 "Certaines ACTIONS prennent en charge des ARGUMENTS supplémentaires.\n"
 
-#: guix/scripts/system.scm:969 guix/scripts/container.scm:29
+#: guix/scripts/system.scm:916 guix/scripts/container.scm:29
 msgid "The valid values for ACTION are:\n"
 msgstr "Les valeurs possibles pour ACTION sont :\n"
 
-#: guix/scripts/system.scm:971
+#: guix/scripts/system.scm:918
 msgid "   search           search for existing service types\n"
 msgstr "   search           chercher des types de services existants\n"
 
-#: guix/scripts/system.scm:973
+#: guix/scripts/system.scm:920
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      basculer vers une nouvelle configuration du système d'exploitation\n"
 
-#: guix/scripts/system.scm:975
+#: guix/scripts/system.scm:922
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        basculer vers la configuration du système d'exploitation précédente\n"
 
-#: guix/scripts/system.scm:977
+#: guix/scripts/system.scm:924
+msgid "   describe         describe the current system\n"
+msgstr "   describe         décrit le système actuel\n"
+
+#: guix/scripts/system.scm:926
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations lister les générations du système\n"
 
-#: guix/scripts/system.scm:979
+#: guix/scripts/system.scm:928
 msgid "   switch-generation switch to an existing operating system configuration\n"
 msgstr "   switch-generation basculer vers une configuration du système d'exploitation existante\n"
 
-#: guix/scripts/system.scm:981
+#: guix/scripts/system.scm:930
 msgid "   delete-generations delete old system generations\n"
 msgstr "   delete-generations supprimer les anciennes générations du système\n"
 
-#: guix/scripts/system.scm:983
+#: guix/scripts/system.scm:932
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            compiler le système d'exploitation sans rien installer\n"
 
-#: guix/scripts/system.scm:985
+#: guix/scripts/system.scm:934
 msgid "   container        build a container that shares the host's store\n"
 msgstr "   container        compiler un conteneur qui partage le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:987
+#: guix/scripts/system.scm:936
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr "   vm               compiler une machine virtuelle partageant le dépôt de l'hôte\n"
 
-#: guix/scripts/system.scm:989
+#: guix/scripts/system.scm:938
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         compiler une image autonome de machine virtuelle\n"
 
-#: guix/scripts/system.scm:991
+#: guix/scripts/system.scm:940
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image       compiler une image disque adaptée pour une clé USB\n"
 
-#: guix/scripts/system.scm:993
+#: guix/scripts/system.scm:942
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     compiler une image Docker\n"
 
-#: guix/scripts/system.scm:995
+#: guix/scripts/system.scm:944
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init             initialiser un système de fichier racine pour lancer GNU.\n"
 
-#: guix/scripts/system.scm:997
+#: guix/scripts/system.scm:946
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  produire le graphique des extensions de service au format Dot\n"
 
-#: guix/scripts/system.scm:999
+#: guix/scripts/system.scm:948
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   produire le graphique des services du shepherd au format Dot\n"
 
-#: guix/scripts/system.scm:1003
+#: guix/scripts/system.scm:952
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -2804,7 +3288,7 @@ msgstr ""
 "\n"
 "  -d, --derivation       retourner les dérivations pour le système donné"
 
-#: guix/scripts/system.scm:1005
+#: guix/scripts/system.scm:954
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
@@ -2814,7 +3298,7 @@ msgstr ""
 "  -e, --expression=EXPR  considère le paquet évalué par EXPR\n"
 "                         au lieu de lire FICHIER, lorsque c'est possible"
 
-#: guix/scripts/system.scm:1008
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
@@ -2826,7 +3310,7 @@ msgstr ""
 "                         appliquer la STRATÉGIE (nothing-special, backtrace ou debug)\n"
 "                         quand une erreur survient en lisant le FICHIER"
 
-#: guix/scripts/system.scm:1012
+#: guix/scripts/system.scm:961
 msgid ""
 "\n"
 "      --file-system-type=TYPE\n"
@@ -2838,7 +3322,7 @@ msgstr ""
 "                         avec « disk-image », produit un système de fichiers racine de TYPE\n"
 "                         (parmis « ext4» et « iso9660 »)"
 
-#: guix/scripts/system.scm:1016
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -2847,7 +3331,7 @@ msgstr ""
 "      --image-size=TAILLE\n"
 "                         pour « vm-image », produire une image de TAILLE"
 
-#: guix/scripts/system.scm:1018
+#: guix/scripts/system.scm:967
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -2855,7 +3339,15 @@ msgstr ""
 "\n"
 "      --no-bootloader    pour « init », ne pas installer un chargeur de démarrage"
 
-#: guix/scripts/system.scm:1020
+#: guix/scripts/system.scm:969 guix/scripts/pack.scm:921
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+"\n"
+"      --save-provenance  sauvegarder les informations de provenance"
+
+#: guix/scripts/system.scm:971
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
@@ -2864,7 +3356,24 @@ msgstr ""
 "      --share=SPEC       pour « vm », partager le système de fichiers hôte selon\n"
 "                         SPEC"
 
-#: guix/scripts/system.scm:1022
+#: guix/scripts/system.scm:973
+msgid ""
+"\n"
+"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+msgstr ""
+"\n"
+"      --expose=SPEC      pour « vm », exposer le système de fichiers hôte selon\n"
+"                         SPEC"
+
+#: guix/scripts/system.scm:975
+msgid ""
+"\n"
+"  -N, --network          for 'container', allow containers to access the network"
+msgstr ""
+"\n"
+"  -N, --network          pour « container », permet l'accès au réseau des conteneurs"
+
+#: guix/scripts/system.scm:977
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -2877,16 +3386,7 @@ msgstr ""
 "                         sur le résultat et l'enregistrer en tant que racine du\n"
 "                         ramasse-miettes"
 
-#: guix/scripts/system.scm:1026
-msgid ""
-"\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
-msgstr ""
-"\n"
-"      --expose=SPEC      pour « vm », exposer le système de fichiers hôte selon\n"
-"                         SPEC"
-
-#: guix/scripts/system.scm:1028
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -2894,7 +3394,7 @@ msgstr ""
 "\n"
 "      --full-boot        pour « vm », accomplir une séquence complète de démarrage"
 
-#: guix/scripts/system.scm:1030
+#: guix/scripts/system.scm:983
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -2903,363 +3403,71 @@ msgstr ""
 "      --skip-checks      ignorer les tests de sécurité des systèmes de fichiers et\n"
 "                         des modules de l'initrd"
 
-#: guix/scripts/system.scm:1140
+#: guix/scripts/system.scm:1100
+#, scheme-format
+msgid "'~a' does not return an operating system~%"
+msgstr "« ~a » ne renvoie pas un système d'exploitation~%"
+
+#: guix/scripts/system.scm:1123
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "on ne peut pas spécifier à la fois un fichier et une expression~%"
 
-#: guix/scripts/system.scm:1147
+#: guix/scripts/system.scm:1130
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "aucune configuration spécifiée~%"
 
-#: guix/scripts/system.scm:1257
+#: guix/scripts/system.scm:1209
+#, scheme-format
+msgid "no system generation, nothing to describe~%"
+msgstr "pas de génération du système, il n'y a rien à décrire~%"
+
+#: guix/scripts/system.scm:1253
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a : action inconnue~%"
 
-#: guix/scripts/system.scm:1273
+#: guix/scripts/system.scm:1269
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "nombre d'arguments incorrect pour l'action « ~a »~%"
 
-#: guix/scripts/system.scm:1278
+#: guix/scripts/system.scm:1274
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system : nom de commande manquant~%"
 
-#: guix/scripts/system.scm:1280
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Essayez « guix system --help » pour plus d'informations.~%"
 
-#: guix/scripts/system/search.scm:88 guix/ui.scm:1332 guix/ui.scm:1346
+#: guix/scripts/system/search.scm:92 guix/ui.scm:1332 guix/ui.scm:1350
 msgid "unknown"
 msgstr "inconnu"
 
-#: guix/scripts/lint.scm:144
-#, scheme-format
-msgid "Available checkers:~%"
-msgstr "Vérificateurs disponibles :~%"
-
-#: guix/scripts/lint.scm:168
-msgid "description should not be empty"
-msgstr "la description ne devrait pas être vide"
-
-#: guix/scripts/lint.scm:178
-msgid "Texinfo markup in description is invalid"
-msgstr "Des balises Texinfo dans la description sont invalides"
-
-#: guix/scripts/lint.scm:188
-#, scheme-format
-msgid ""
-"description should not contain ~\n"
-"trademark sign '~a' at ~d"
-msgstr ""
-"la description ne devrait pas contenir ~\n"
-"le signe de marque déposée « ~a » à ~d"
-
-#. TRANSLATORS: '@code' is Texinfo markup and must be kept
-#. as is.
-#: guix/scripts/lint.scm:201
-msgid "use @code or similar ornament instead of quotes"
-msgstr "utiliser @code ou une décoration similaire au lieu des guillemets"
-
-#: guix/scripts/lint.scm:208
-msgid "description should start with an upper-case letter or digit"
-msgstr "la description devrait commencer par une majuscule ou un chiffre"
-
-#: guix/scripts/lint.scm:224
-#, scheme-format
-msgid ""
-"sentences in description should be followed ~\n"
-"by two spaces; possible infraction~p at ~{~a~^, ~}"
-msgstr ""
-"les phrases dans la description devraient être suivies ~\n"
-"par deux espaces. Infraction probable~p à ~{~a~^, ~}"
-
-#: guix/scripts/lint.scm:242
-#, scheme-format
-msgid "invalid description: ~s"
-msgstr "description invalide : ~s"
-
-#: guix/scripts/lint.scm:287
-#, scheme-format
-msgid "'~a' should probably be a native input"
-msgstr "« ~a » devrait sans doute être une entrée native"
-
-#: guix/scripts/lint.scm:303
-#, scheme-format
-msgid "'~a' should probably not be an input at all"
-msgstr "« ~a » ne devrait probablement pas être une entrée du tout"
-
-#: guix/scripts/lint.scm:320
-msgid "synopsis should not be empty"
-msgstr "le synopsis ne devrait pas être vide"
-
-#: guix/scripts/lint.scm:328
-msgid "no period allowed at the end of the synopsis"
-msgstr "un point n'est pas autorisé à la fin du synopsis"
-
-#: guix/scripts/lint.scm:340
-msgid "no article allowed at the beginning of the synopsis"
-msgstr "les articles ne sont pas permis au début du synopsis"
-
-#: guix/scripts/lint.scm:347
-msgid "synopsis should be less than 80 characters long"
-msgstr "le synopsis devrait être plus court que 80 caractères"
-
-#: guix/scripts/lint.scm:353
-msgid "synopsis should start with an upper-case letter or digit"
-msgstr "le synopsis devrait commencer par une majuscule ou un chiffre"
-
-#: guix/scripts/lint.scm:360
-msgid "synopsis should not start with the package name"
-msgstr "le synopsis ne devrait pas commencer par un nom de paquet"
-
-#: guix/scripts/lint.scm:370
-msgid "Texinfo markup in synopsis is invalid"
-msgstr "La balise Texinfo dans le synopsis est invalide"
-
-#: guix/scripts/lint.scm:389
-#, scheme-format
-msgid "invalid synopsis: ~s"
-msgstr "synopsis non valide : ~s"
-
-#: guix/scripts/lint.scm:508
-#, scheme-format
-msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr "L'URI ~a a renvoyé un fichier étrangement petit (~a octets)"
-
-#: guix/scripts/lint.scm:518
-#, scheme-format
-msgid "permanent redirect from ~a to ~a"
-msgstr "redirection permanente de ~a vers ~a"
-
-#: guix/scripts/lint.scm:525
-#, scheme-format
-msgid "invalid permanent redirect from ~a"
-msgstr "redirection permanente invalide : ~a"
-
-#: guix/scripts/lint.scm:532 guix/scripts/lint.scm:544
-#, scheme-format
-msgid "URI ~a not reachable: ~a (~s)"
-msgstr "L'URI ~a n'a pu être atteinte : ~a (~s)"
-
-#: guix/scripts/lint.scm:551
-#, scheme-format
-msgid "URI ~a domain not found: ~a"
-msgstr "Le domaine de l'URI ~a n'a pas été trouvé : ~a"
-
-#: guix/scripts/lint.scm:559
-#, scheme-format
-msgid "URI ~a unreachable: ~a"
-msgstr "L'URI ~a n'a pu être atteinte : ~a"
-
-#: guix/scripts/lint.scm:568
-#, scheme-format
-msgid "TLS certificate error: ~a"
-msgstr "Erreur de certificat TLS : ~a"
-
-#: guix/scripts/lint.scm:589
-msgid "invalid value for home page"
-msgstr "valeur invalide pour la page d'accueil"
-
-#: guix/scripts/lint.scm:592
-#, scheme-format
-msgid "invalid home page URL: ~s"
-msgstr "URL de la page d'accueil invalide : ~s"
-
-#: guix/scripts/lint.scm:619
-msgid "file names of patches should start with the package name"
-msgstr "les noms de fichiers des correctifs devraient commencer par le nom du paquet"
-
-#: guix/scripts/lint.scm:635
-#, scheme-format
-msgid "~a: file name is too long"
-msgstr "~a : le nom de fichier est trop long"
-
-#: guix/scripts/lint.scm:676
-#, scheme-format
-msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr "~a : ~a : synopsis proposé : ~s~%"
-
-#: guix/scripts/lint.scm:689
-#, scheme-format
-msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr "~a : ~a : description proposée :~%     « ~a »~%"
-
-#: guix/scripts/lint.scm:731
-msgid "all the source URIs are unreachable:"
-msgstr "toutes les URI sources sont inatteignables :"
-
-#: guix/scripts/lint.scm:753
-msgid "the source file name should contain the package name"
-msgstr "le nom du fichier source devrait contenir le nom du paquet"
-
-#: guix/scripts/lint.scm:765
-msgid "the source URI should not be an autogenerated tarball"
-msgstr "l'URI de la source ne devrait pas être une archive auto-générée"
-
-#: guix/scripts/lint.scm:786
-#, scheme-format
-msgid "URL should be 'mirror://~a/~a'"
-msgstr "L'URL devrait être « mirror://~a/~a »"
-
-#: guix/scripts/lint.scm:829
-#, scheme-format
-msgid "URL should be '~a'"
-msgstr "L'URL devrait être « ~a »"
-
-#: guix/scripts/lint.scm:840 guix/scripts/lint.scm:845
-#, scheme-format
-msgid "failed to create ~a derivation: ~a"
-msgstr "échec à la création de la dérivation pour ~a : ~a"
-
-#: guix/scripts/lint.scm:862
-#, scheme-format
-msgid "failed to create ~a derivation: ~s"
-msgstr "échec à la création de la dérivation pour ~a : ~s"
-
-#: guix/scripts/lint.scm:874
-msgid "invalid license field"
-msgstr "champ de licence invalide"
-
-#: guix/scripts/lint.scm:881
-#, scheme-format
-msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
-msgstr "~a : erreur HTTP GET pour ~a : ~a (~s)~%"
-
-#: guix/scripts/lint.scm:891
-#, scheme-format
-msgid "~a: host lookup failure: ~a~%"
-msgstr "~a : erreur lors de la consultation du nom d'hôte : ~a~%"
-
-#: guix/scripts/lint.scm:896
-#, scheme-format
-msgid "~a: TLS certificate error: ~a"
-msgstr "~a : erreur de certificat TLS : ~a"
-
-#: guix/scripts/lint.scm:911
-msgid "while retrieving CVE vulnerabilities"
-msgstr "pendant la récupération des vulnérabilités CVE"
-
-#: guix/scripts/lint.scm:948
-#, scheme-format
-msgid "probably vulnerable to ~a"
-msgstr "probablement vulnérable à ~a"
-
-#: guix/scripts/lint.scm:955
-#, scheme-format
-msgid "while retrieving upstream info for '~a'"
-msgstr "pendant la récupération des informations en amont de « ~a »"
-
-#: guix/scripts/lint.scm:963
-#, scheme-format
-msgid "can be upgraded to ~a"
-msgstr "peut être mis à jour vers ~a"
-
-#: guix/scripts/lint.scm:978
-#, scheme-format
-msgid "tabulation on line ~a, column ~a"
-msgstr "tabulation à la ligne ~a, colonne ~a"
-
-#: guix/scripts/lint.scm:987
+#: guix/scripts/lint.scm:51
 #, scheme-format
-msgid "trailing white space on line ~a"
-msgstr "espace à la fin de la ligne ~a"
-
-#: guix/scripts/lint.scm:997
-#, scheme-format
-msgid "line ~a is way too long (~a characters)"
-msgstr "la ligne ~a est beaucoup trop longue (~a caractères)"
+msgid "~a@~a: ~a~%"
+msgstr "~a@~a : ~a~%"
 
-#: guix/scripts/lint.scm:1008
+#: guix/scripts/lint.scm:74
 #, scheme-format
-msgid "line ~a: parentheses feel lonely, move to the previous or next line"
-msgstr "ligne ~a : des parenthèses se sentent seules. À déplacer à la ligne suivante ou précédente"
-
-#: guix/scripts/lint.scm:1078
-msgid "Validate package descriptions"
-msgstr "Valider des descriptions de paquets"
-
-#: guix/scripts/lint.scm:1082
-msgid "Validate synopsis & description of GNU packages"
-msgstr "Valider le synopsis et la description de paquets GNU"
-
-#: guix/scripts/lint.scm:1086
-msgid "Identify inputs that should be native inputs"
-msgstr "Identifier les entrées qui devraient être natives"
-
-#: guix/scripts/lint.scm:1090
-msgid "Identify inputs that shouldn't be inputs at all"
-msgstr "Identifier les entrées qui ne devraient pas être des entrées du tout"
-
-#: guix/scripts/lint.scm:1094
-msgid "Validate file names and availability of patches"
-msgstr "Valider les noms de fichiers et la disponibilité de correctifs"
-
-#: guix/scripts/lint.scm:1098
-msgid "Validate home-page URLs"
-msgstr "Valider les URL des pages d'accueil"
-
-#. TRANSLATORS: <license> is the name of a data type and must not be
-#. translated.
-#: guix/scripts/lint.scm:1104
-msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr "S'assurer que le champ « licence » est une <licence> ou une telle liste"
-
-#: guix/scripts/lint.scm:1109
-msgid "Validate source URLs"
-msgstr "Valider les URL sources"
-
-#: guix/scripts/lint.scm:1113
-msgid "Suggest 'mirror://' URLs"
-msgstr "Suggérer des URL « mirror:// »"
-
-#: guix/scripts/lint.scm:1117
-msgid "Suggest GitHub URLs"
-msgstr "Suggérer des URL GitHub"
-
-#: guix/scripts/lint.scm:1121
-msgid "Validate file names of sources"
-msgstr "Valider les noms des fichiers des sources"
-
-#: guix/scripts/lint.scm:1125
-msgid "Check for autogenerated tarballs"
-msgstr "Vérifier les archives auto-générées"
-
-#: guix/scripts/lint.scm:1129
-msgid "Report failure to compile a package to a derivation"
-msgstr "Signaler l'échec de la compilation d'un paquet d'une dérivation"
-
-#: guix/scripts/lint.scm:1133
-msgid "Validate package synopses"
-msgstr "Valider les synopsis des paquets"
-
-#: guix/scripts/lint.scm:1137
-msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr "Vérifier la base de données des vulnérabilités et failles connues (CVE)"
-
-#: guix/scripts/lint.scm:1142
-msgid "Check the package for new upstream releases"
-msgstr "Vérifier s'il y a une nouvelle version en amont pour le paquet"
-
-#: guix/scripts/lint.scm:1146
-msgid "Look for formatting issues in the source"
-msgstr "Rechercher des problèmes de format dans la source"
+msgid "Available checkers:~%"
+msgstr "Vérificateurs disponibles :~%"
 
-#: guix/scripts/lint.scm:1174
+#: guix/scripts/lint.scm:92
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
 "run the checkers on all packages.\n"
 msgstr ""
-"Usage : guix lint [OPTION]... [PAQUET]...\n"
+"Utilisation : guix lint [OPTION]... [PAQUET]...\n"
 "Lancer un ensemble de vérificateurs sur le paquet spécifié ; si aucun n'est spécifié,\n"
 "lancer les vérificateurs sur tous les paquets.\n"
 
-#: guix/scripts/lint.scm:1177
+#: guix/scripts/lint.scm:95
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -3269,7 +3477,7 @@ msgstr ""
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         lancer uniquement les vérificateurs spécifiés"
 
-#: guix/scripts/lint.scm:1182
+#: guix/scripts/lint.scm:103
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -3277,21 +3485,21 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    afficher la liste des vérificateurs disponibles"
 
-#: guix/scripts/lint.scm:1202
+#: guix/scripts/lint.scm:122
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a : vérificateur non valide~%"
 
-#: guix/scripts/publish.scm:68
+#: guix/scripts/publish.scm:72
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
 "Publish ~a over HTTP.\n"
 msgstr ""
-"Usage : guix publish [OPTION]...\n"
+"Utilisation : guix publish [OPTION]...\n"
 "Diffuser ~a via HTTP.\n"
 
-#: guix/scripts/publish.scm:70
+#: guix/scripts/publish.scm:74
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
@@ -3299,7 +3507,7 @@ msgstr ""
 "\n"
 "  -p, --port=PORT        écouter sur le PORT"
 
-#: guix/scripts/publish.scm:72
+#: guix/scripts/publish.scm:76
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
@@ -3307,7 +3515,7 @@ msgstr ""
 "\n"
 "      --listen=HÔTE      écouter sur l'interface réseau HÔTE"
 
-#: guix/scripts/publish.scm:74
+#: guix/scripts/publish.scm:78
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
@@ -3317,17 +3525,17 @@ msgstr ""
 "                         changer les privilèges de UTILISATEUR aussi vite\n"
 "                         que possible"
 
-#: guix/scripts/publish.scm:76
+#: guix/scripts/publish.scm:80
 msgid ""
 "\n"
-"  -C, --compression[=LEVEL]\n"
-"                         compress archives at LEVEL"
+"  -C, --compression[=METHOD:LEVEL]\n"
+"                         compress archives with METHOD at LEVEL"
 msgstr ""
 "\n"
-"  -C, --compression[=NIVEAU]\n"
-"                         compresser les archives au NIVEAU"
+"  -C, --compression[=MÉTHODE:NIVEAU]\n"
+"                         compresser les archives avec MÉTHODE au NIVEAU"
 
-#: guix/scripts/publish.scm:79
+#: guix/scripts/publish.scm:83
 msgid ""
 "\n"
 "  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
@@ -3335,7 +3543,7 @@ msgstr ""
 "\n"
 "  -c, --cache=RÉPERTOIRE mettre les éléments publiés en cache dans le RÉPERTOIRE"
 
-#: guix/scripts/publish.scm:81
+#: guix/scripts/publish.scm:85
 msgid ""
 "\n"
 "      --workers=N        use N workers to bake items"
@@ -3343,7 +3551,7 @@ msgstr ""
 "\n"
 "      --workers=N        utiliser N travailleurs pour préparer les éléments"
 
-#: guix/scripts/publish.scm:83
+#: guix/scripts/publish.scm:87
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -3352,7 +3560,7 @@ msgstr ""
 "      --ttl=TTL          les annonces narinfos peuvent être mises en cache\n"
 "                         pendant TTL secondes"
 
-#: guix/scripts/publish.scm:85
+#: guix/scripts/publish.scm:89
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -3360,7 +3568,7 @@ msgstr ""
 "\n"
 "      --nar-path=CHEMIN  utiliser le CHEMIN comme préfixe pour les URL nar"
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:91
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
@@ -3369,7 +3577,7 @@ msgstr ""
 "      --public-key=FICHIER\n"
 "                         utiliser le FICHIER comme clé publique pour les signatures"
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:93
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
@@ -3378,7 +3586,7 @@ msgstr ""
 "      --private-key=FICHIER\n"
 "                         utiliser le FICHIER comme clé privée pour les signatures"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:95
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -3386,77 +3594,82 @@ msgstr ""
 "\n"
 "  -r, --repl[=PORT]      créer le serveur REPL sur le PORT"
 
-#: guix/scripts/publish.scm:107
+#: guix/scripts/publish.scm:111
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "la recherche de l'hôte « ~a » a échoué : ~a~%"
 
-#: guix/scripts/publish.scm:152
+#: guix/scripts/publish.scm:159
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "la recherche de l'hôte « ~a » n'a rien retourné"
 
-#: guix/scripts/publish.scm:165
+#: guix/scripts/publish.scm:182
 #, scheme-format
-msgid "zlib support is missing; compression disabled~%"
-msgstr "la prise en charge de zlib est absente. La compression est désactivée~%"
+msgid "~a: unsupported compression type~%"
+msgstr "~a : type de compression non pris en charge~%"
 
-#: guix/scripts/publish.scm:179
+#: guix/scripts/publish.scm:196
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a : durée non valide~%"
 
-#: guix/scripts/publish.scm:876
+#: guix/scripts/publish.scm:1008
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "utilisateur « ~a » non trouvé : ~a~%"
 
-#: guix/scripts/publish.scm:917
+#: guix/scripts/publish.scm:1059
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr "le serveur tourne en tant que root. Envisagez d'utiliser l'option « --user » !~%"
 
-#: guix/scripts/publish.scm:922
+#: guix/scripts/publish.scm:1064
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "diffusion de ~a sur ~a, port ~d~%"
 
-#: guix/scripts/edit.scm:40
+#: guix/scripts/publish.scm:1070
+#, scheme-format
+msgid "using '~a' compression method, level ~a~%"
+msgstr "utilisation de la méthode de compression « ~a », au niveau ~a~%"
+
+#: guix/scripts/edit.scm:45
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
 msgstr ""
-"Usage : guix edit PAQUET...\n"
+"Utilisation : guix edit PAQUET...\n"
 "Démarrer $VISUAL ou $EDITOR pour éditer la définition de PAQUET...\n"
 
-#: guix/scripts/edit.scm:61
+#: guix/scripts/edit.scm:69
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "fichier « ~a » pas trouvé dans le chemin de recherche ~s~%"
 
-#: guix/scripts/edit.scm:96
+#: guix/scripts/edit.scm:104
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "impossible de démarrer « ~a » : ~a~%"
 
-#: guix/scripts/size.scm:69
+#: guix/scripts/size.scm:71
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr "pas d'information de substitution disponible pour « ~a »~%"
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "store item"
 msgstr "élément stockage"
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "total"
 msgstr "total"
 
-#: guix/scripts/size.scm:91
+#: guix/scripts/size.scm:93
 msgid "self"
 msgstr "lui-même"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:101
 #, scheme-format
 msgid "total: ~,1f MiB~%"
 msgstr "total : ~,1f MiB~%"
@@ -3464,19 +3677,19 @@ msgstr "total : ~,1f MiB~%"
 #. TRANSLATORS: This is the title of a graph, meaning that the graph
 #. represents a profile of the store (the "store" being the place where
 #. packages are stored.)
-#: guix/scripts/size.scm:222
+#: guix/scripts/size.scm:224
 msgid "store profile"
 msgstr "profil du dépôt"
 
-#: guix/scripts/size.scm:231
+#: guix/scripts/size.scm:233
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
 msgstr ""
-"Usage : guix size [OPTION]... PAQUET\n"
+"Utilisation : guix size [OPTION]... PAQUET\n"
 "Rapporter la taille du PAQUET et de ses dépendances.\n"
 
-#: guix/scripts/size.scm:236
+#: guix/scripts/size.scm:238
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
@@ -3485,7 +3698,7 @@ msgstr ""
 "  -s, --system=SYSTÈME   prend en compte les paquets pour le SYSTÈME, par exemple « i686-linux »"
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:239
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
@@ -3493,7 +3706,7 @@ msgstr ""
 "\n"
 "      --sort=CLEF        tri en fonction de la CLEF : « closure » ou « self »"
 
-#: guix/scripts/size.scm:241
+#: guix/scripts/size.scm:243
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
@@ -3501,102 +3714,102 @@ msgstr ""
 "\n"
 "  -m, --map-file=FICHIER écrit dans le FICHIER une carte graphique de l'utilisation du disque"
 
-#: guix/scripts/size.scm:272
+#: guix/scripts/size.scm:277
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr "~a : clef de tri invalide~%"
 
-#: guix/scripts/size.scm:307
+#: guix/scripts/size.scm:315
 msgid "missing store item argument\n"
 msgstr "argument d'élément de stockage manquant\n"
 
-#: guix/scripts/graph.scm:88
+#: guix/scripts/graph.scm:94
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr "~a : argument invalide (nom de paquet attendu)"
 
-#: guix/scripts/graph.scm:99
+#: guix/scripts/graph.scm:105
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr "le DAG des paquets en excluant les entrées implicites"
 
-#: guix/scripts/graph.scm:135
+#: guix/scripts/graph.scm:141
 msgid "the reverse DAG of packages"
 msgstr "le graphe orienté acyclique (DAG) inversé des paquets"
 
-#: guix/scripts/graph.scm:185
+#: guix/scripts/graph.scm:191
 msgid "the DAG of packages, including implicit inputs"
 msgstr "le DAG des paquets en incluant les entrées implicites"
 
-#: guix/scripts/graph.scm:195
+#: guix/scripts/graph.scm:201
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr "le DAG des paquets et origines en incluant les entrées implicites"
 
-#: guix/scripts/graph.scm:225
+#: guix/scripts/graph.scm:231
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr "comme « bag » mais sans les nœuds d'amorçage"
 
-#: guix/scripts/graph.scm:242
+#: guix/scripts/graph.scm:248
 msgid "the reverse DAG of packages, including implicit inputs"
 msgstr "le DAG inversé des paquets en incluant les entrées implicites"
 
-#: guix/scripts/graph.scm:282
+#: guix/scripts/graph.scm:287
 msgid "the DAG of derivations"
 msgstr "le DAG des dérivations"
 
-#: guix/scripts/graph.scm:294
+#: guix/scripts/graph.scm:299
 msgid "unsupported argument for derivation graph"
 msgstr "argument non pris en charge pour le graphe de dérivation"
 
-#: guix/scripts/graph.scm:320
+#: guix/scripts/graph.scm:325
 msgid "unsupported argument for this type of graph"
 msgstr "argument non pris en charge pour ce type de graphe"
 
-#: guix/scripts/graph.scm:333
+#: guix/scripts/graph.scm:338
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "les références pour « ~a » sont inconnues~%"
 
-#: guix/scripts/graph.scm:340
+#: guix/scripts/graph.scm:345
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "le DAG des dépendances à l'exécution (stockage des références)"
 
-#: guix/scripts/graph.scm:356
+#: guix/scripts/graph.scm:361
 msgid "the DAG of referrers in the store"
 msgstr "le graphe orienté acyclique (DAG) des référents dans le stockage"
 
-#: guix/scripts/graph.scm:386
+#: guix/scripts/graph.scm:391
 msgid "the graph of package modules"
 msgstr "le graphe des modules de paquets"
 
-#: guix/scripts/graph.scm:415
+#: guix/scripts/graph.scm:420
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a : type de nœud inconnu~%"
 
-#: guix/scripts/graph.scm:422
+#: guix/scripts/graph.scm:427
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a : moteur de graphe inconnu~%"
 
-#: guix/scripts/graph.scm:426
+#: guix/scripts/graph.scm:431
 msgid "The available node types are:\n"
 msgstr "Les types de nœuds disponibles sont :\n"
 
-#: guix/scripts/graph.scm:436
+#: guix/scripts/graph.scm:441
 msgid "The available backend types are:\n"
 msgstr "Les types de moteurs de graphes disponibles sont :\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:484
+#: guix/scripts/graph.scm:494
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
 msgstr ""
-"Usage : guix graph PAQUET...\n"
+"Utilisation : guix graph PAQUET...\n"
 "Produit une représentation du graphe des dépendances de PAQUET...\n"
 
-#: guix/scripts/graph.scm:486
+#: guix/scripts/graph.scm:496
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -3604,7 +3817,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TYPE     produire un graphe avec le TYPE de moteur donné"
 
-#: guix/scripts/graph.scm:488
+#: guix/scripts/graph.scm:498
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -3612,7 +3825,7 @@ msgstr ""
 "\n"
 "      --list-backends    lister les types de moteurs de graphes disponibles"
 
-#: guix/scripts/graph.scm:490
+#: guix/scripts/graph.scm:500
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -3620,7 +3833,7 @@ msgstr ""
 "\n"
 "  -t, --type=TYPE        représenter les nœuds du TYPE donné"
 
-#: guix/scripts/graph.scm:492
+#: guix/scripts/graph.scm:502
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -3628,7 +3841,7 @@ msgstr ""
 "\n"
 "      --list-types       lister les types de graphes disponibles"
 
-#: guix/scripts/graph.scm:494 guix/scripts/pack.scm:752
+#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:906
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -3636,7 +3849,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considère le paquet évalué par EXPR"
 
-#: guix/scripts/graph.scm:496
+#: guix/scripts/graph.scm:506
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
@@ -3644,66 +3857,73 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   considérer le graphe pour le SYSTÈME, par exemple « i686-linux »"
 
-#: guix/scripts/challenge.scm:191
+#: guix/scripts/challenge.scm:301
+#, scheme-format
+msgid "  differing file:~%"
+msgid_plural "  differing files:~%"
+msgstr[0] "  fichier différent :~%"
+msgstr[1] "  fichiers différents :~%"
+
+#: guix/scripts/challenge.scm:370
 #, scheme-format
 msgid "  local hash: ~a~%"
 msgstr "  empreinte locale : ~a~%"
 
-#: guix/scripts/challenge.scm:192
+#: guix/scripts/challenge.scm:371
 #, scheme-format
 msgid "  no local build for '~a'~%"
 msgstr "  aucune compilation locale pour « ~a »~%"
 
-#: guix/scripts/challenge.scm:194
+#: guix/scripts/challenge.scm:373
 #, scheme-format
 msgid "  ~50a: ~a~%"
 msgstr "  ~50a : ~a~%"
 
-#: guix/scripts/challenge.scm:202
+#: guix/scripts/challenge.scm:381
 #, scheme-format
 msgid "~a contents differ:~%"
 msgstr "le contenu de ~a diffère :~%"
 
-#: guix/scripts/challenge.scm:205
+#: guix/scripts/challenge.scm:385
 #, scheme-format
 msgid "could not challenge '~a': no local build~%"
 msgstr "impossible de mettre « ~a » au défi : aucune construction locale~%"
 
-#: guix/scripts/challenge.scm:207
+#: guix/scripts/challenge.scm:387
 #, scheme-format
 msgid "could not challenge '~a': no substitutes~%"
 msgstr "impossible de mettre « ~a » au défi : aucune substitution~%"
 
-#: guix/scripts/challenge.scm:210
+#: guix/scripts/challenge.scm:390
 #, scheme-format
 msgid "~a contents match:~%"
 msgstr "le contenu de ~a correspond:~%"
 
-#: guix/scripts/challenge.scm:219
+#: guix/scripts/challenge.scm:399
 msgid "~h store items were analyzed:~%"
 msgstr "~h éléments du dépôt ont été analysés :~%"
 
-#: guix/scripts/challenge.scm:220
+#: guix/scripts/challenge.scm:400
 msgid "  - ~h (~,1f%) were identical~%"
 msgstr "  - ~h (~,1f %) étaient identiques~%"
 
-#: guix/scripts/challenge.scm:222
+#: guix/scripts/challenge.scm:402
 msgid "  - ~h (~,1f%) differed~%"
 msgstr "  - ~h (~,1f %) étaient différents~%"
 
-#: guix/scripts/challenge.scm:224
+#: guix/scripts/challenge.scm:404
 msgid "  - ~h (~,1f%) were inconclusive~%"
 msgstr "  - ~h (~,1f %) étaient impossibles à évaluer~%"
 
-#: guix/scripts/challenge.scm:233
+#: guix/scripts/challenge.scm:413
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
-"Usage : guix challenge [PAQUET...]\n"
+"Utilisation : guix challenge [PAQUET...]\n"
 "Contrôle les substituts du PAQUET... fourni par un ou plusieurs serveurs.\n"
 
-#: guix/scripts/challenge.scm:235
+#: guix/scripts/challenge.scm:415
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -3713,7 +3933,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         comparer les résultats de compilation avec ceux aux URLS"
 
-#: guix/scripts/challenge.scm:238
+#: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
 "      -v, --verbose      show details about successful comparisons"
@@ -3721,6 +3941,19 @@ msgstr ""
 "\n"
 "      -v, --verbose      montrer les détails des comparaisons réussies"
 
+#: guix/scripts/challenge.scm:420
+msgid ""
+"\n"
+"          --diff=MODE    show differences according to MODE"
+msgstr ""
+"\n"
+"          --diff=MODE    montre les différences suivant MODE"
+
+#: guix/scripts/challenge.scm:449
+#, scheme-format
+msgid "~a: unknown diff mode~%"
+msgstr "~a : mode de différence inconnu~%"
+
 #: guix/scripts/copy.scm:60
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
@@ -3760,12 +3993,17 @@ msgstr ""
 msgid "use '--to' or '--from'~%"
 msgstr "utilisez « --to » ou « --from »~%"
 
-#: guix/scripts/pack.scm:95
+#: guix/scripts/pack.scm:98
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a : compresseur introuvable~%"
 
-#: guix/scripts/pack.scm:513
+#: guix/scripts/pack.scm:283
+#, scheme-format
+msgid "entry point not supported in the '~a' format~%"
+msgstr "point d'entré non pris en charge dans le format « ~a »~%"
+
+#: guix/scripts/pack.scm:644
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -3774,11 +4012,11 @@ msgstr ""
 "la compilation croisée n'est pas implémentée ici ;\n"
 "envoyez un courriel à « ~a »~%"
 
-#: guix/scripts/pack.scm:644
+#: guix/scripts/pack.scm:787
 msgid "The supported formats for 'guix pack' are:"
 msgstr "Les formats pris en charge par « guix pack » sont :"
 
-#: guix/scripts/pack.scm:646
+#: guix/scripts/pack.scm:789
 msgid ""
 "\n"
 "  tarball       Self-contained tarball, ready to run on another machine"
@@ -3786,7 +4024,7 @@ msgstr ""
 "\n"
 "  tarball       Archive auto-contenue, prête à être lancée sur d'autres machines"
 
-#: guix/scripts/pack.scm:648
+#: guix/scripts/pack.scm:791
 msgid ""
 "\n"
 "  squashfs      Squashfs image suitable for Singularity"
@@ -3794,7 +4032,7 @@ msgstr ""
 "\n"
 "  squashfs      Image Squashfs compatible avec Singularity"
 
-#: guix/scripts/pack.scm:650
+#: guix/scripts/pack.scm:793
 msgid ""
 "\n"
 "  docker        Tarball ready for 'docker load'"
@@ -3802,17 +4040,17 @@ msgstr ""
 "\n"
 "  docker        Archive prête à être utilisée avec « docker load »"
 
-#: guix/scripts/pack.scm:712
+#: guix/scripts/pack.scm:862
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a : spécification de lien symbolique invalide~%"
 
-#: guix/scripts/pack.scm:726
+#: guix/scripts/pack.scm:876
 #, scheme-format
 msgid "~a: unsupported profile name~%"
 msgstr "~a : nom de profil non pris en charge~%"
 
-#: guix/scripts/pack.scm:740
+#: guix/scripts/pack.scm:894
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -3820,7 +4058,7 @@ msgstr ""
 "Utilisation : guix pack [OPTION]... PAQUET...\n"
 "Créer un lot applicatif de PAQUET.\n"
 
-#: guix/scripts/pack.scm:746
+#: guix/scripts/pack.scm:900
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -3828,7 +4066,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    créer un lot applicatif dans le FORMAT donné"
 
-#: guix/scripts/pack.scm:748
+#: guix/scripts/pack.scm:902
 msgid ""
 "\n"
 "      --list-formats     list the formats available"
@@ -3836,7 +4074,7 @@ msgstr ""
 "\n"
 "      --list-formats     lister les formats disponibles"
 
-#: guix/scripts/pack.scm:750
+#: guix/scripts/pack.scm:904
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -3844,7 +4082,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produire des exécutables repositionnables"
 
-#: guix/scripts/pack.scm:758
+#: guix/scripts/pack.scm:912
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -3853,7 +4091,7 @@ msgstr ""
 "  -C, --compression=OUTIL\n"
 "                         compresser en utilisant l'OUTIL, par ex, « lzip »"
 
-#: guix/scripts/pack.scm:760
+#: guix/scripts/pack.scm:914
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -3861,7 +4099,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=SPEC     créer des liens symboliques vers le profil selon la SPEC"
 
-#: guix/scripts/pack.scm:762
+#: guix/scripts/pack.scm:916
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -3869,15 +4107,17 @@ msgstr ""
 "\n"
 "  -m, --manifest=FICHIER créer un lot avec le manifeste dans FICHIER"
 
-#: guix/scripts/pack.scm:764
+#: guix/scripts/pack.scm:918
 msgid ""
 "\n"
-"      --save-provenance  save provenance information"
+"      --entry-point=PROGRAM\n"
+"                         use PROGRAM as the entry point of the pack"
 msgstr ""
 "\n"
-"      --save-provenance  sauvegarder les informations de provenance"
+"      --entry-point=PROGRAM\n"
+"                         utiliser PROGRAM comme point d'entré du lot applicatif"
 
-#: guix/scripts/pack.scm:766
+#: guix/scripts/pack.scm:923
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -3885,7 +4125,7 @@ msgstr ""
 "\n"
 "      --localstatedir    inclure /var/guix dans le lot résultant"
 
-#: guix/scripts/pack.scm:768
+#: guix/scripts/pack.scm:925
 msgid ""
 "\n"
 "      --profile-name=NAME\n"
@@ -3894,7 +4134,15 @@ msgstr ""
 "\n"
 "      --profile-name=NOM rempli /var/guix/profiles/.../NOM"
 
-#: guix/scripts/pack.scm:773
+#: guix/scripts/pack.scm:931
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the pack"
+msgstr ""
+"\n"
+"  -d, --derivation       renvoyer la dérivation du lot applicatif"
+
+#: guix/scripts/pack.scm:935
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -3902,21 +4150,35 @@ msgstr ""
 "\n"
 "      --bootstrap        utiliser les programmes d'amorçage pour compiler le lot"
 
-#: guix/scripts/pack.scm:818
+#: guix/scripts/pack.scm:986
 #, scheme-format
 msgid "could not determine provenance of package ~a~%"
 msgstr "impossible de déterminer la provenance du paquet ~a~%"
 
-#: guix/scripts/pack.scm:827
+#: guix/scripts/pack.scm:995
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "vous avez donné à la fois un manifeste et une liste de paquets~%"
 
-#: guix/scripts/pack.scm:882
+#: guix/scripts/pack.scm:1049
 #, scheme-format
 msgid "~a: unknown pack format~%"
 msgstr "~a : format de lot inconnu~%"
 
+#: guix/scripts/pack.scm:1059
+#, scheme-format
+msgid "no packages specified; building an empty pack~%"
+msgstr "aucun paquet spécifié, construction d'un lot vide~%"
+
+#: guix/scripts/pack.scm:1063
+#, scheme-format
+msgid "Singularity requires you to provide a shell~%"
+msgstr "Singularity a besoin que vous fournissiez un shell~%"
+
+#: guix/scripts/pack.scm:1064
+msgid "Add @code{bash} or @code{bash-minimal} to your package list."
+msgstr "Ajoutez @code{bash} ou @code{bash-minimal} à la liste des paquets."
+
 #: guix/scripts/weather.scm:80
 msgid "computing ~h package derivations for ~a...~%"
 msgstr "calcul de ~h dérivations de paquets pour ~a…~%"
@@ -3925,81 +4187,81 @@ msgstr "calcul de ~h dérivations de paquets pour ~a…~%"
 msgid "looking for ~h store items on ~a...~%"
 msgstr "recherche de ~h éléments du dépôt sur ~a...~%"
 
-#: guix/scripts/weather.scm:181
+#: guix/scripts/weather.scm:184
 msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
 msgstr "  ~2,1f % des substituts sont disponibles (~h sur ~h)~%"
 
-#: guix/scripts/weather.scm:187
+#: guix/scripts/weather.scm:190
 #, scheme-format
 msgid "  unknown substitute sizes~%"
 msgstr "  taille des substituts inconnue~%"
 
-#: guix/scripts/weather.scm:190
+#: guix/scripts/weather.scm:193
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr "  ~,1h Mo de fichiers nar (compressés)~%"
 
-#: guix/scripts/weather.scm:191
+#: guix/scripts/weather.scm:194
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr "  au moins ~,1h Mo de fichiers nar (compressés)~%"
 
-#: guix/scripts/weather.scm:193
+#: guix/scripts/weather.scm:196
 msgid "  ~,1h MiB on disk (uncompressed)~%"
 msgstr "  ~,1h Mo sur le disque (décompressé)~%"
 
-#: guix/scripts/weather.scm:195
+#: guix/scripts/weather.scm:198
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
 msgstr "  ~,3h secondes par requête (~,1h secondesen tout)~%"
 
-#: guix/scripts/weather.scm:197
+#: guix/scripts/weather.scm:200
 msgid "  ~,1h requests per second~%"
 msgstr "  ~,1h requêtes par seconde~%"
 
-#: guix/scripts/weather.scm:203
+#: guix/scripts/weather.scm:206
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr "  (informations sur l’intégration continue indisponibles)~%"
 
-#: guix/scripts/weather.scm:206
+#: guix/scripts/weather.scm:209
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
 msgstr "  « ~a » a renvoyé ~a (~s)~%"
 
-#: guix/scripts/weather.scm:223
+#: guix/scripts/weather.scm:226
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
 msgstr "  ~,1f % (~h sur ~h) des éléments manquants sont dans la queue~%"
 
-#: guix/scripts/weather.scm:229
+#: guix/scripts/weather.scm:232
 msgid "  at least ~h queued builds~%"
 msgstr "  au moins ~h constructions dans la queue~%"
 
-#: guix/scripts/weather.scm:230
+#: guix/scripts/weather.scm:233
 msgid "  ~h queued builds~%"
 msgstr "  ~h constructions dans la queue~%"
 
-#: guix/scripts/weather.scm:233
+#: guix/scripts/weather.scm:236
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
 msgstr "      ~a : ~a (~0,1f %)~%"
 
-#: guix/scripts/weather.scm:239
+#: guix/scripts/weather.scm:242
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
 msgstr "  vitesse de construction : ~1,2f constructions par l'heure~%"
 
-#: guix/scripts/weather.scm:243
+#: guix/scripts/weather.scm:246
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
 msgstr "      ~a: ~,2f constructions par heure~%"
 
-#: guix/scripts/weather.scm:255
+#: guix/scripts/weather.scm:258
 msgid ""
-"Usage: guix weather [OPTIONS]\n"
+"Usage: guix weather [OPTIONS] [PACKAGES ...]\n"
 "Report the availability of substitutes.\n"
 msgstr ""
-"Usage : guix weather [OPTIONS]\n"
+"Utilisation : guix weather [OPTIONS] [PAQUETS ...]\n"
 "Rapporte la disponibilité des substituts.\n"
 
-#: guix/scripts/weather.scm:257
+#: guix/scripts/weather.scm:260
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -4009,7 +4271,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         vérifie la disponibilité des substituts aux URLS"
 
-#: guix/scripts/weather.scm:260
+#: guix/scripts/weather.scm:263
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
@@ -4019,7 +4281,7 @@ msgstr ""
 "  -m, --manifest=MANIFESTE\n"
 "                         recherche les substituts des paquets du MANIFESTE"
 
-#: guix/scripts/weather.scm:263
+#: guix/scripts/weather.scm:266
 msgid ""
 "\n"
 "  -c, --coverage[=COUNT]\n"
@@ -4031,7 +4293,7 @@ msgstr ""
 "                         affiche la couverture des substituts pour les paquets qui ont au\n"
 "                         moins COMPTE paquets qui en dépendent"
 
-#: guix/scripts/weather.scm:267
+#: guix/scripts/weather.scm:270
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
@@ -4039,31 +4301,31 @@ msgstr ""
 "\n"
 "  -s, --system=SYSTÈME   prend en compte les substituts pour le SYSTÈME, par exemple « i686-linux »"
 
-#: guix/scripts/weather.scm:291
+#: guix/scripts/weather.scm:294
 #, scheme-format
 msgid "~a: invalid URL~%"
 msgstr "~a : URL invalide~%"
 
-#: guix/scripts/weather.scm:420
+#: guix/scripts/weather.scm:423
 #, scheme-format
 msgid "The following ~a package is missing from '~a' for '~a':~%"
 msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
 msgstr[0] "Le (~a) paquet suivant n'est pas sur « ~a » pour « ~a » :~%"
 msgstr[1] "Les ~a paquets suivants ne sont pas sur « ~a » pour « ~a » :~%"
 
-#: guix/scripts/weather.scm:426
+#: guix/scripts/weather.scm:429
 #, scheme-format
 msgid "~a package is missing from '~a' for '~a':~%"
 msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
 msgstr[0] "~a paquet n'est pas sur « ~a » pour « ~a » :~%"
 msgstr[1] "~a paquets ne sont pas sur « ~a » pour « ~a », parmi lesquels :~%"
 
-#: guix/scripts/describe.scm:46
+#: guix/scripts/describe.scm:50
 #, scheme-format
 msgid "~a: unsupported output format~%"
 msgstr "~a : format de sortie non pris en charge~%"
 
-#: guix/scripts/describe.scm:65
+#: guix/scripts/describe.scm:69
 msgid ""
 "Usage: guix describe [OPTION]...\n"
 "Display information about the channels currently in use.\n"
@@ -4071,7 +4333,7 @@ msgstr ""
 "Utilisation : guix describe [OPTION]...\n"
 "Affiche des informations sur les canaux actuellement utilisés.\n"
 
-#: guix/scripts/describe.scm:67
+#: guix/scripts/describe.scm:71
 msgid ""
 "\n"
 "  -f, --format=FORMAT    display information in the given FORMAT"
@@ -4079,7 +4341,7 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    montrer les informations dans le FORMAT donné"
 
-#: guix/scripts/describe.scm:69
+#: guix/scripts/describe.scm:73
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  display information about PROFILE"
@@ -4087,22 +4349,22 @@ msgstr ""
 "\n"
 "  -p, --profile=PROFIL   afficher les informations sur le PROFIL"
 
-#: guix/scripts/describe.scm:88
+#: guix/scripts/describe.scm:92
 #, scheme-format
 msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
 msgstr "~%;; attention : GUIX_PACKAGE_PATH=\"~a\"~%"
 
-#: guix/scripts/describe.scm:91
+#: guix/scripts/describe.scm:95
 #, scheme-format
 msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
 msgstr "« GUIX_PACKAGE_PATH » est renseigné mais n'est pas utilisé~%"
 
-#: guix/scripts/describe.scm:118
+#: guix/scripts/describe.scm:122
 #, scheme-format
 msgid "failed to determine origin~%"
 msgstr "échec à la détection de l'origine~%"
 
-#: guix/scripts/describe.scm:119
+#: guix/scripts/describe.scm:123
 #, scheme-format
 msgid ""
 "Perhaps this\n"
@@ -4113,26 +4375,41 @@ msgstr ""
 "@command{guix} n'a pas été obtenue avec @command{guix pull} ? Son numéro de version\n"
 "est ~a.~%"
 
-#: guix/scripts/describe.scm:129
+#: guix/scripts/describe.scm:133
 #, scheme-format
 msgid "Git checkout:~%"
 msgstr "Dépôt git :~%"
 
-#: guix/scripts/describe.scm:130
+#: guix/scripts/describe.scm:134
 #, scheme-format
 msgid "  repository: ~a~%"
 msgstr "  URL du dépôt : ~a~%"
 
-#: guix/scripts/describe.scm:131
+#: guix/scripts/describe.scm:135
 #, scheme-format
 msgid "  branch: ~a~%"
 msgstr "  branche: ~a~%"
 
-#: guix/scripts/describe.scm:132
+#: guix/scripts/describe.scm:136
 #, scheme-format
 msgid "  commit: ~a~%"
 msgstr "  commit : ~a~%"
 
+#: guix/scripts/describe.scm:198
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr "    URL du dépôt : ~a~%"
+
+#: guix/scripts/describe.scm:200
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr "    branche: ~a~%"
+
+#: guix/scripts/describe.scm:201
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr "    commit : ~a~%"
+
 #: guix/scripts/processes.scm:211
 msgid ""
 "Usage: guix processes\n"
@@ -4141,23 +4418,42 @@ msgstr ""
 "Utilisation : guix processes\n"
 "Liste les sessions Guix actuelles et leurs processus."
 
-#: guix/gnu-maintenance.scm:660
+#: guix/scripts/deploy.scm:47
+msgid ""
+"Usage: guix deploy [OPTION] FILE...\n"
+"Perform the deployment specified by FILE.\n"
+msgstr ""
+"Utilisation: guix debloy [OPTION] FICHIER...\n"
+"Effectue le déploiement spécifié par FICHIER.\n"
+
+#: guix/scripts/deploy.scm:112
+#, scheme-format
+msgid "deploying to ~a...~%"
+msgstr "déploiement vers ~a...~%"
+
+#: guix/scripts/deploy.scm:116
+#, scheme-format
+msgid "failed to deploy ~a: ~a~%"
+msgstr "impossible de déployer ~a : ~a~%"
+
+#: guix/scripts/deploy.scm:121
+#, scheme-format
+msgid "rolling back ~a...~%"
+msgstr "Retour en arrière de ~a...~%"
+
+#: guix/gnu-maintenance.scm:647
 msgid "Updater for GNU packages"
 msgstr "Logiciel de mise à jour des paquets GNU"
 
-#: guix/gnu-maintenance.scm:669
+#: guix/gnu-maintenance.scm:656
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Logiciel de mise à jour des paquets GNU disponibles uniquement par FTP"
 
-#: guix/gnu-maintenance.scm:678
-msgid "Updater for KDE packages"
-msgstr "Logiciel de mise à jour des paquets KDE"
-
-#: guix/gnu-maintenance.scm:685
+#: guix/gnu-maintenance.scm:665
 msgid "Updater for X.org packages"
 msgstr "Logiciel de mise à jour des paquets X.org"
 
-#: guix/gnu-maintenance.scm:692
+#: guix/gnu-maintenance.scm:672
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Logiciel de mise à jour des paquets hébergés sur kernel.org"
 
@@ -4166,7 +4462,7 @@ msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
 msgstr ""
-"Usage : guix container ACTION ARGS...\n"
+"Utilisation : guix container ACTION ARGS...\n"
 "Compile et manipule des containers Linux.\n"
 
 #: guix/scripts/container.scm:31
@@ -4186,9 +4482,9 @@ msgstr "guix container : action invalide~%"
 #: guix/scripts/container/exec.scm:40
 msgid ""
 "Usage: guix container exec PID COMMAND [ARGS...]\n"
-"Execute COMMMAND within the container process PID.\n"
+"Execute COMMAND within the container process PID.\n"
 msgstr ""
-"Usage : guix container exec PID COMMANDE [ARGS...]\n"
+"Utilisation : guix container exec PID COMMANDE [ARGS...]\n"
 "Exécuter la COMMANDE dans le container du processus PID.\n"
 
 #: guix/scripts/container/exec.scm:69
@@ -4216,89 +4512,109 @@ msgstr "aucun processus ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "exec a échoué avec le statut ~d~%"
 
-#: guix/upstream.scm:327
+#: guix/upstream.scm:328
 #, scheme-format
-msgid "signature verification failed for `~a'~%"
-msgstr "la vérification de la signature a échoué pour « ~a »~%"
+msgid "signature verification failed for '~a' (key: ~a)~%"
+msgstr "la vérification de la signature a échoué pour « ~a » (clef : ~a)~%"
 
-#: guix/upstream.scm:329
+#: guix/upstream.scm:332
 #, scheme-format
-msgid "(could be because the public key is not in your keyring)~%"
-msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%"
+msgid "missing public key ~a for '~a'~%"
+msgstr "impossible de trouver la clé publique ~a correspondant à « ~a »~%"
 
-#: guix/upstream.scm:397
+#: guix/upstream.scm:408
 #, scheme-format
 msgid "cannot download for this method: ~s"
 msgstr "impossible de télécharger pour cette méthode : ~s"
 
-#: guix/upstream.scm:460
+#: guix/upstream.scm:471
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a : le fichier source est introuvable"
 
-#: guix/upstream.scm:465
+#: guix/upstream.scm:476
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a : ~a : aucun champ « version » dans la source ; ignoré~%"
 
-#. TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
-#. "~a" is a placeholder for that phrase.
-#: guix/ui.scm:205
-msgid "warning: "
-msgstr "avertissement : "
-
-#: guix/ui.scm:207
-msgid "error: "
-msgstr "erreur : "
-
-#: guix/ui.scm:254
+#: guix/ui.scm:154
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "erreur : ~a : variable non liée"
 
-#: guix/ui.scm:350
+#: guix/ui.scm:254
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "entrée dans le débogueur; tapez « ,bt » pour la trace d'exécution\n"
 
-#: guix/ui.scm:405
+#: guix/ui.scm:311
 msgid "hint: "
 msgstr "conseil : "
 
-#: guix/ui.scm:422
+#: guix/ui.scm:328
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Auriez-vous oublié un @code{use-modules} ?"
 
-#: guix/ui.scm:424
+#: guix/ui.scm:330
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Auriez-vous oublié @code{(use-modules ~a)} ?"
 
-#: guix/ui.scm:433 guix/ui.scm:474 guix/ui.scm:480
+#: guix/ui.scm:340
+#, scheme-format
+msgid ""
+"File @file{~a} should probably start with:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+msgstr ""
+"Le fichier @file{~a} devrait probablement commencer par :\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+
+#: guix/ui.scm:354
+#, scheme-format
+msgid "module name ~a does not match file name '~a'~%"
+msgstr "le nom de module « ~a » ne correspond pas au nom du fichier « ~a »~%"
+
+#: guix/ui.scm:358
+#, scheme-format
+msgid "~a: file is empty~%"
+msgstr "~a : le fichier est vide~%"
+
+#: guix/ui.scm:369 guix/ui.scm:411 guix/ui.scm:419
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "impossible de charger « ~a » : ~a~%"
 
-#: guix/ui.scm:440
+#: guix/ui.scm:376
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~a parenthèses fermantes manquantes~%"
 
-#: guix/ui.scm:454 guix/ui.scm:877
+#: guix/ui.scm:381
+#, scheme-format
+msgid "~s: ~a~%"
+msgstr "~s : ~a~%"
+
+#: guix/ui.scm:391 guix/ui.scm:842
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "exception générée : ~s~%"
 
-#: guix/ui.scm:458 guix/ui.scm:486
+#: guix/ui.scm:395 guix/ui.scm:425
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "échec lors du chargement de « ~a » :~%"
 
-#: guix/ui.scm:483
+#: guix/ui.scm:422
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "échec lors du chargement de « ~a » : exception générée : ~s~%"
 
-#: guix/ui.scm:516
+#: guix/ui.scm:470
 msgid ""
 "Consider installing the @code{glibc-utf8-locales} or\n"
 "@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
@@ -4325,15 +4641,15 @@ msgstr ""
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:554
+#: guix/ui.scm:508
 msgid "(C)"
 msgstr "©"
 
-#: guix/ui.scm:555
+#: guix/ui.scm:509
 msgid "the Guix authors\n"
 msgstr "les auteurs de Guix\n"
 
-#: guix/ui.scm:556
+#: guix/ui.scm:510
 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"
@@ -4347,7 +4663,7 @@ msgstr ""
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:568
+#: guix/ui.scm:522
 #, scheme-format
 msgid ""
 "\n"
@@ -4357,7 +4673,7 @@ msgstr ""
 "Signalez toute anomalie à : ~a.\n"
 "Signalez toute erreur de traduction à : traduc@traduc.org."
 
-#: guix/ui.scm:570
+#: guix/ui.scm:524
 #, scheme-format
 msgid ""
 "\n"
@@ -4366,7 +4682,7 @@ msgstr ""
 "\n"
 "~a page d'accueil : <~a>"
 
-#: guix/ui.scm:572
+#: guix/ui.scm:526
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -4374,27 +4690,27 @@ msgstr ""
 "\n"
 "Aide générale sur l'utilisation des logiciels GNU : <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:627
+#: guix/ui.scm:581
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "« ~a » n'est pas une expression rationnelle valide : ~a~%"
 
-#: guix/ui.scm:633
+#: guix/ui.scm:587
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a : nombre non valide~%"
 
-#: guix/ui.scm:650
+#: guix/ui.scm:604
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "nombre non valide : ~a~%"
 
-#: guix/ui.scm:673
+#: guix/ui.scm:627
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unité inconnue : ~a~%"
 
-#: guix/ui.scm:688
+#: guix/ui.scm:642
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -4403,7 +4719,7 @@ msgstr ""
 "Vous ne pouvez pas avoir deux versions ou variantes\n"
 "différentes de @code{~a} dans le même profil."
 
-#: guix/ui.scm:691
+#: guix/ui.scm:645
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -4412,116 +4728,111 @@ msgstr ""
 "Essayez de mettre à jour à la fois @code{~a} et @code{~a},\n"
 "ou supprimez-en un du profil."
 
-#: guix/ui.scm:710
+#: guix/ui.scm:664
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a :~a :~a : le paquet « ~a » a une entrée non valide : ~s~%"
 
-#: guix/ui.scm:717
+#: guix/ui.scm:671
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a : ~a : le système de construction « ~a » ne prend pas en charge la compilation croisée~%"
 
-#: guix/ui.scm:723
+#: guix/ui.scm:677
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s : entrée G-expression invalide~%"
 
-#: guix/ui.scm:726
+#: guix/ui.scm:680
 #, scheme-format
 msgid "profile '~a' does not exist~%"
-msgstr "le profile « ~a » n'existe pas~%"
+msgstr "le profil « ~a » n'existe pas~%"
 
-#: guix/ui.scm:729
+#: guix/ui.scm:683
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
-msgstr "la génération ~a du profile « ~a » n'existe pas~%"
+msgstr "la génération ~a du profil « ~a » n'existe pas~%"
 
-#: guix/ui.scm:734
+#: guix/ui.scm:688
 #, scheme-format
 msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
 msgstr "le paquet « ~a~@[@~a~]~@[:~a~] » n'a pas été trouvé dans le profil~%"
 
-#: guix/ui.scm:746
+#: guix/ui.scm:700
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagé depuis ~a@~a~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:710
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "le profil contient des entrées en conflit pour ~a~a~%"
 
-#: guix/ui.scm:759
+#: guix/ui.scm:713
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  première entrée : ~a@~a~a ~a~%"
 
-#: guix/ui.scm:765
+#: guix/ui.scm:719
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  deuxième entrée : ~a@~a~a ~a~%"
 
-#: guix/ui.scm:777
+#: guix/ui.scm:731
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "entrée corrompue en restaurant « ~a » depuis ~s~%"
 
-#: guix/ui.scm:779
+#: guix/ui.scm:733
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "entrée corrompue en restaurant l'archive depuis ~s~%"
 
-#: guix/ui.scm:782
+#: guix/ui.scm:736
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "impossible de se connecter à « ~a » : ~a~%"
 
-#: guix/ui.scm:790
+#: guix/ui.scm:744
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "référence à la sortie invalide « ~a » de la dérivation « ~a »~%"
 
-#: guix/ui.scm:794
+#: guix/ui.scm:748
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "le fichier « ~a » n'a pas été trouvé dans ces répertoires :~{ ~a~}~%"
 
-#: guix/ui.scm:799
+#: guix/ui.scm:753
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "le programme a quitté~@[ avec un statut non nul ~a~]~@[ terminé par le signal ~a~]~@[ arrêté par le signal ~a~] : ~s~%"
 
 #: guix/ui.scm:827
 #, scheme-format
-msgid "~a: ~a~%"
-msgstr "~a: ~a~%"
-
-#: guix/ui.scm:862
-#, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "impossible de lire l'expression ~s : ~s~%"
 
-#: guix/ui.scm:868
+#: guix/ui.scm:833
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "impossible d'évaluer l'expression « ~a » :~%"
 
-#: guix/ui.scm:871
+#: guix/ui.scm:836
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "erreur de syntaxe : ~a~%"
 
-#: guix/ui.scm:889
+#: guix/ui.scm:854
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "l'expression ~s ne correspond à aucun paquet~%"
 
-#: guix/ui.scm:909
+#: guix/ui.scm:881
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "au moins ~,1h Mo sont nécessaires mais seulement ~,1h Mo sont disponibles dans ~a~%"
 
-#: guix/ui.scm:1011
+#: guix/ui.scm:977
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -4530,32 +4841,32 @@ msgstr[1] "~:[Les dérivations suivantes seraient compilées :~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1019
+#: guix/ui.scm:985
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seraient téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1024
+#: guix/ui.scm:991
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant serait téléchargé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seraient téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1030
+#: guix/ui.scm:998
 #, scheme-format
 msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La greffe suivante serait effectuée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les greffes suivantes seraient effectuées :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1035
+#: guix/ui.scm:1003
 #, scheme-format
 msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le crochet suivante serait compilé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les crochets suivants seraient compilés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1041
+#: guix/ui.scm:1009
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -4564,92 +4875,98 @@ msgstr[1] "~:[Les dérivations suivantes seront compilées :~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:1049
+#: guix/ui.scm:1017
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h Mo seront téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1054
+#: guix/ui.scm:1023
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le fichier suivant sera téléchargé :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les fichiers suivants seront téléchargés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1060
+#: guix/ui.scm:1030
 #, scheme-format
 msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[La greffe suivante sera effectuée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les greffes suivantes seront effectuées :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1065
+#: guix/ui.scm:1035
 #, scheme-format
 msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Le crochet suivant sera compilée :~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Les crochets suivants seront compilés :~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:1124
+#: guix/ui.scm:1094
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait supprimé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient supprimés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1129
+#: guix/ui.scm:1099
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera supprimé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront supprimés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1142
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à une version inférieure :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à des versions inférieures :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1147
+#: guix/ui.scm:1117
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à une version inférieure :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à des versions inférieures :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1160
+#: guix/ui.scm:1130
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait mis à jour :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient mis à jour :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1165
+#: guix/ui.scm:1135
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera mis à jour :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront mis à jour :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1176
+#: guix/ui.scm:1146
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant serait installé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seraient installés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1181
+#: guix/ui.scm:1151
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Le paquet suivant sera installé :~%~{~a~%~}~%"
 msgstr[1] "Les paquets suivants seront installés :~%~{~a~%~}~%"
 
-#: guix/ui.scm:1198 guix/deprecation.scm:46
-msgid "<unknown location>"
-msgstr "<emplacement inconnu>"
+#: guix/ui.scm:1480
+#, scheme-format
+msgid "Run @code{~a ... | less} to view all the results."
+msgstr "Lancez @code{~a ... | less} pour voir tous les résultats"
+
+#: guix/ui.scm:1630
+#, scheme-format
+msgid "invalid syntax: ~a~%"
+msgstr "syntaxe non valide : ~a~%"
 
-#: guix/ui.scm:1580
+#: guix/ui.scm:1640
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Génération ~a\t~a"
@@ -4659,7 +4976,7 @@ msgstr "Génération ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1589
+#: guix/ui.scm:1650
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -4667,49 +4984,59 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1595
+#: guix/ui.scm:1656
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(actuelle)~%"
 
-#: guix/ui.scm:1638
+#: guix/ui.scm:1690
+#, scheme-format
+msgid "cannot lock profile ~a: ~a~%"
+msgstr "impossible de verrouiller le profil ~a : ~a~%"
+
+#: guix/ui.scm:1692
+#, scheme-format
+msgid "profile ~a is locked by another process~%"
+msgstr "le profil ~a est verrouillé par un autre processus~%"
+
+#: guix/ui.scm:1719
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "passé de la génération ~a à ~a~%"
 
-#: guix/ui.scm:1654
+#: guix/ui.scm:1735
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "suppression de ~a~%"
 
-#: guix/ui.scm:1685
+#: guix/ui.scm:1766
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Essayez « guix --help » pour plus d'informations.~%"
 
-#: guix/ui.scm:1713
+#: guix/ui.scm:1794
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
 msgstr ""
-"Usage : guix COMMANDE ARGS...\n"
+"Utilisation : guix COMMANDE ARGS...\n"
 "Lance la COMMANDE avec les arguments ARGS.\n"
 
-#: guix/ui.scm:1716
+#: guix/ui.scm:1797
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMMANDE doit être une des sous-commandes listées ci-dessous :\n"
 
-#: guix/ui.scm:1736
+#: guix/ui.scm:1813
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix : ~a : commande introuvable~%"
 
-#: guix/ui.scm:1766
+#: guix/ui.scm:1843
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix : nom de commande manquant~%"
 
-#: guix/ui.scm:1774
+#: guix/ui.scm:1851
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix : option « ~a » non reconnue ~%"
@@ -4855,129 +5182,165 @@ msgstr ""
 msgid "offloading build of ~a to '~a'"
 msgstr "déchargement de la construction de ~a sur « ~a »"
 
-#: guix/http-client.scm:117
+#: guix/http-client.scm:120
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "redirection vers « ~a »...~%"
 
-#: guix/http-client.scm:129
+#: guix/http-client.scm:132
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a : le téléchargement HTTP a échoué : ~a (~s)"
 
-#: guix/nar.scm:157
+#: guix/nar.scm:147
 msgid "signature is not a valid s-expression"
 msgstr "la signature n'est pas une s-expression valide"
 
-#: guix/nar.scm:166
+#: guix/nar.scm:156
 msgid "invalid signature"
 msgstr "signature non valide"
 
-#: guix/nar.scm:170
+#: guix/nar.scm:160
 msgid "invalid hash"
 msgstr "empreinte non valide"
 
-#: guix/nar.scm:178
+#: guix/nar.scm:168
 msgid "unauthorized public key"
 msgstr "clé publique non autorisée"
 
-#: guix/nar.scm:183
+#: guix/nar.scm:173
 msgid "corrupt signature data"
 msgstr "signature corrompue"
 
-#: guix/nar.scm:203
+#: guix/nar.scm:193
 msgid "corrupt file set archive"
 msgstr "ensemble de fichiers corrompu dans l'archive"
 
-#: guix/nar.scm:213
+#: guix/nar.scm:203
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "import du fichier ou répertoire « ~a »...~%"
 
-#: guix/nar.scm:224
+#: guix/nar.scm:214
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "signature valide trouvée pour « ~a »~%"
 
-#: guix/nar.scm:231
+#: guix/nar.scm:221
 msgid "imported file lacks a signature"
 msgstr "les fichiers importés requièrent une signature"
 
-#: guix/nar.scm:270
+#: guix/nar.scm:260
 msgid "invalid inter-file archive mark"
 msgstr "marque d'archive inter-fichier non valide"
 
-#: guix/channels.scm:177
+#: guix/channels.scm:168
+msgid "unsupported '.guix-channel' version"
+msgstr "version de « .guix-channel » non prise en charge"
+
+#: guix/channels.scm:174
+msgid "invalid '.guix-channel' file"
+msgstr "fichier « .guix-channel » invalide"
+
+#: guix/channels.scm:224
 #, scheme-format
 msgid "Updating channel '~a' from Git repository at '~a'...~%"
 msgstr "Mise à jour du canal « ~a » depuis le dépôt Git « ~a »...~%"
 
-#: guix/channels.scm:366
+#: guix/channels.scm:460
 msgid "'guix' channel is lacking"
 msgstr "le canal « guix » est absent"
 
-#: guix/profiles.scm:511
+#: guix/channels.scm:462
+msgid ""
+"Make sure your list of channels\n"
+"contains one channel named @code{guix} providing the core of Guix."
+msgstr ""
+"Assurez-vous que votre liste de canaux contient un canal\n"
+"nommé @code{guix} qui fourrnit le cœur de la distribution de\n"
+"Guix."
+
+#: guix/channels.scm:664
+msgid "invalid channel news entry"
+msgstr "entrée de nouvelle d'un canal invalide"
+
+#: guix/channels.scm:682
+msgid "syntactically invalid channel news file"
+msgstr "fichier de nouvelles d'un canal syntactiquement invalide"
+
+#: guix/channels.scm:685
+msgid "invalid channel news file"
+msgstr "fichier de nouvelles d'un canal invalide"
+
+#: guix/profiles.scm:515
 msgid "unsupported manifest format"
 msgstr "format de manifeste non pris en charge"
 
-#: guix/profiles.scm:1748
+#: guix/profiles.scm:1767
 #, scheme-format
 msgid "while creating directory `~a': ~a"
 msgstr "pendant la création du répertoire « ~a » : ~a"
 
-#: guix/profiles.scm:1753
+#: guix/profiles.scm:1772
 #, scheme-format
 msgid "Please create the @file{~a} directory, with you as the owner."
 msgstr "Veuillez créer le répertoire @file{~a} dont vous êtes le propriétaire."
 
-#: guix/profiles.scm:1762
+#: guix/profiles.scm:1781
 #, scheme-format
 msgid "directory `~a' is not owned by you"
 msgstr "vous ne possédez pas le répertoire « ~a »"
 
-#: guix/profiles.scm:1766
+#: guix/profiles.scm:1785
 #, scheme-format
 msgid "Please change the owner of @file{~a} to user ~s."
 msgstr "Veuillez définir le propriétaire de @file{~a} comme étant ~s."
 
-#: guix/git.scm:159
+#: guix/git.scm:170
 msgid "long Git object ID is required"
 msgstr "l'ID long de l'objet Git est requis"
 
-#: guix/git.scm:192
+#: guix/git.scm:229
 #, scheme-format
 msgid "updating submodule '~a'...~%"
 msgstr "mise à jour du sous-module « ~a »…~%"
 
-#: guix/git.scm:205
+#: guix/git.scm:242
 #, scheme-format
 msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
 msgstr "La prise en charge des sous-modules est absente ; mettez Guile-Git à jour.~%"
 
-#: guix/git.scm:344
+#: guix/git.scm:441
 #, scheme-format
 msgid "cannot fetch commit ~a from ~a: ~a"
 msgstr "impossible de récupérer le commit ~a depuis ~a : ~a"
 
-#: guix/git.scm:347
+#: guix/git.scm:444
 #, scheme-format
 msgid "cannot fetch branch '~a' from ~a: ~a"
 msgstr "impossible de récupérer la branche « ~a » depuis ~a : ~a"
 
-#: guix/git.scm:350
+#: guix/git.scm:447
 #, scheme-format
 msgid "Git failure while fetching ~a: ~a"
 msgstr "Échec de Git pendant la récupération de ~a : ~a"
 
-#: guix/deprecation.scm:51
+#: guix/deprecation.scm:37
 #, scheme-format
-msgid "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%"
-msgstr "~a : attention : « ~a » est obsolète~@[, utilisez « ~a » à la place~]~%"
+msgid "'~a' is deprecated, use '~a' instead~%"
+msgstr "« ~a » est obsolète, utilisez plutôt « ~a »~%"
 
-#: gnu/build/bootloader.scm:91
+#: guix/deprecation.scm:39
 #, scheme-format
-msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
-msgstr "« ~a~{ ~a~} » a quitté avec le statut ~a ; la sortie est la suivante :~%~%~{  ~a~%~}"
+msgid "'~a' is deprecated~%"
+msgstr "« ~a » est obsolète~%"
+
+#. TRANSLATORS: 'derivation' must not be translated; it refers to the
+#. 'derivation' procedure.
+#: guix/derivations.scm:743
+#, scheme-format
+msgid "in '~a': deprecated 'derivation' calling convention used~%"
+msgstr "dans « ~a » : convention d'appel à « derivation » obsolète~%"
 
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
@@ -5051,58 +5414,136 @@ msgstr "URLS"
 msgid "use URLS as the default list of substitute providers"
 msgstr "utilise URLS comme liste par défaut de fournisseurs de substituts"
 
-#: nix/nix-daemon/guix-daemon.cc:117
-msgid "do not use the 'build hook'"
-msgstr "n'utilise pas le « build hook »"
+#: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120
+msgid "do not attempt to offload builds"
+msgstr "n'essaye pas de décharger les constructions"
 
-#: nix/nix-daemon/guix-daemon.cc:119
+#: nix/nix-daemon/guix-daemon.cc:122
 msgid "cache build failures"
 msgstr "garde les fonctionnalités de compilation en cache"
 
-#: nix/nix-daemon/guix-daemon.cc:121
+#: nix/nix-daemon/guix-daemon.cc:124
 msgid "build each derivation N times in a row"
 msgstr "compile chaque dérivation N fois de suite"
 
-#: nix/nix-daemon/guix-daemon.cc:123
+#: nix/nix-daemon/guix-daemon.cc:126
 msgid "do not keep build logs"
 msgstr "ne conserve pas les journaux de compilation"
 
-#: nix/nix-daemon/guix-daemon.cc:126
+#: nix/nix-daemon/guix-daemon.cc:129
 msgid "disable compression of the build logs"
 msgstr "désactive la compression des journaux de compilation"
 
-#: nix/nix-daemon/guix-daemon.cc:128
+#: nix/nix-daemon/guix-daemon.cc:131
 msgid "use the specified compression type for build logs"
 msgstr "utilise le type de compression spécifié pour les journaux de compilation"
 
-#: nix/nix-daemon/guix-daemon.cc:133
+#: nix/nix-daemon/guix-daemon.cc:136
 msgid "disable automatic file \"deduplication\" in the store"
 msgstr "désactive la « déduplication » automatique des fichiers dans le stockage"
 
-#: nix/nix-daemon/guix-daemon.cc:143
+#: nix/nix-daemon/guix-daemon.cc:146
 msgid "impersonate Linux 2.6"
 msgstr "se faire passer pour Linux 2.6"
 
-#: nix/nix-daemon/guix-daemon.cc:147
+#: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep outputs of live derivations"
 msgstr "indique si le GC doit garder les sorties des dérivations en temps réel"
 
-#: nix/nix-daemon/guix-daemon.cc:150
+#: nix/nix-daemon/guix-daemon.cc:153
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
 msgstr "indique si le GC doit garder les dérivations correspondant aux sorties en temps réel"
 
-#: nix/nix-daemon/guix-daemon.cc:153
+#: nix/nix-daemon/guix-daemon.cc:156
 msgid "SOCKET"
 msgstr "SOCKET"
 
-#: nix/nix-daemon/guix-daemon.cc:154
+#: nix/nix-daemon/guix-daemon.cc:157
 msgid "listen for connections on SOCKET"
 msgstr "écoute sur SOCKET pour des connexions"
 
-#: nix/nix-daemon/guix-daemon.cc:156
+#: nix/nix-daemon/guix-daemon.cc:159
 msgid "produce debugging output"
 msgstr "produit une sortie de déboguage"
 
+#~ msgid "Hide"
+#~ msgstr "Cacher"
+
+#~ msgid "The following environment variable definitions may be needed:~%"
+#~ msgstr "Il pourrait être nécessaire de définir les variables d'environnement suivantes :~%"
+
+#~ msgid "would install new manifest from '~a' with ~d entries~%"
+#~ msgstr "installerait le nouveau manifeste depuis « ~a » avec ~d entrées~%"
+
+#~ msgid "installing new manifest from '~a' with ~d entries~%"
+#~ msgstr "installation du nouveau manifeste depuis « ~a » avec ~d entrées~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --verbose          produce verbose output"
+#~ msgstr ""
+#~ "\n"
+#~ "      --verbose          produire une sortie verbeuse"
+
+#~ msgid "while fetching '~a': ~a (~s)~%"
+#~ msgstr "pendant la récupération de « ~a » : ~a (~s)~%"
+
+#~ msgid "ignoring substitute server at '~s'~%"
+#~ msgstr "ignore le serveur de substitution à « ~s »~%"
+
+#~ msgid "invalid signature for '~a'~%"
+#~ msgstr "signature non valide pour « ~a »~%"
+
+#~ msgid "hash mismatch for '~a'~%"
+#~ msgstr "l'empreinte ne correspond pas pour « ~a »~%"
+
+#~ msgid "'~a' is signed with an unauthorized key~%"
+#~ msgstr "« ~a » est signé avec une clé non autorisée~%"
+
+#~ msgid "signature on '~a' is corrupt~%"
+#~ msgstr "la signature de « ~a » est corrompue~%"
+
+#~ msgid "'~a' uses different store '~a'; ignoring it~%"
+#~ msgstr "« ~a » utilise un stockage « ~a » différent. Il est ignoré~%"
+
+#~ msgid "failed to install bootloader ~a~%"
+#~ msgstr "impossible d'installer le chargeur de démarrage : ~a~%"
+
+#~ msgid "unloading service '~a'...~%"
+#~ msgstr "déchargement du service « ~a »...~%"
+
+#~ msgid "loading new services:~{ ~a~}...~%"
+#~ msgstr "chargement des nouveaux services :~{ ~a~}...~%"
+
+#~ msgid ""
+#~ "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
+#~ "upgrade, and restart each service that was not automatically restarted.\n"
+#~ msgstr ""
+#~ "Pour compléter la mise à jour, lancez « herd restart SERVICE » pour arrêter,\n"
+#~ "mettre à jour et redémarrer tous les services qui n'ont pas été redémarrés\n"
+#~ "automatiquement.\n"
+
+#~ msgid "zlib support is missing; compression disabled~%"
+#~ msgstr "la prise en charge de zlib est absente. La compression est désactivée~%"
+
+#~ msgid "Updater for KDE packages"
+#~ msgstr "Logiciel de mise à jour des paquets KDE"
+
+#~ msgid "(could be because the public key is not in your keyring)~%"
+#~ msgstr "(il est possible que la clé publique ne soit pas dans dans votre trousseau)~%"
+
+#~ msgid "warning: "
+#~ msgstr "avertissement : "
+
+#~ msgid "error: "
+#~ msgstr "erreur : "
+
+#~ msgid "<unknown location>"
+#~ msgstr "<emplacement inconnu>"
+
+#~ msgid "do not use the 'build hook'"
+#~ msgstr "n'utilise pas le « build hook »"
+
 #~ msgid "'--url', '--commit', and '--branch' are not applicable~%"
 #~ msgstr "'--url', '--commit' et '--branch' ne sont pas utilisables~%"
 
@@ -5159,9 +5600,6 @@ msgstr "produit une sortie de déboguage"
 #~ msgid "Guix already up to date\n"
 #~ msgstr "Guix est déjà à jour\n"
 
-#~ msgid "updated ~a successfully deployed under `~a'~%"
-#~ msgstr "~a a été mis à jour et déployé avec succès sous « ~a »~%"
-
 #~ msgid "failed to update Guix, check the build log~%"
 #~ msgstr "échec de la mise à jour de Guix ; consultez le journal de compilation~%"
 
diff --git a/po/guix/pt_BR.po b/po/guix/pt_BR.po
index 67f1d43b3f..c07b0d3586 100644
--- a/po/guix/pt_BR.po
+++ b/po/guix/pt_BR.po
@@ -1,14 +1,14 @@
 # Brazilian Portuguese translation of the guix
-# Copyright (C) 2018 the authors of Guix (msgids)
-# Copyright (C) 2018 Free Software Foundation, Inc.
+# Copyright (C) 2019 the authors of Guix (msgids)
+# Copyright (C) 2019 Free Software Foundation, Inc.
 # This file is distributed under the same license as the guix package.
-# Rafael Fontenelle <rafaelff@gnome.org>, 2013, 2016, 2018.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2019, 2020.
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.15.0\n"
+"Project-Id-Version: guix 1.1.0-pre1\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2018-06-22 14:08+0200\n"
-"PO-Revision-Date: 2018-06-22 11:58-0200\n"
+"POT-Creation-Date: 2020-02-12 00:13+0100\n"
+"PO-Revision-Date: 2020-02-13 09:19-0300\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
 "Language: pt_BR\n"
@@ -19,12 +19,12 @@ msgstr ""
 "X-Generator: Virtaal 1.0.0-beta1\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 
-#: gnu.scm:82
+#: gnu.scm:83
 #, scheme-format
 msgid "module ~a not found"
 msgstr "módulo ~a não localizado"
 
-#: gnu.scm:100
+#: gnu.scm:101
 msgid ""
 "You may use @command{guix package --show=foo | grep location} to search\n"
 "for the location of package @code{foo}.\n"
@@ -36,12 +36,12 @@ msgstr ""
 "Se você obtiver a linha @code{location: gnu/packages/bar.scm:174:2},\n"
 "adicione @code{bar} à forma @code{use-package-modules}."
 
-#: gnu.scm:108
+#: gnu.scm:109
 #, scheme-format
 msgid "Try adding @code{(use-package-modules ~a)}."
 msgstr "Tente adicionar @code{(use-package-modules ~a)}."
 
-#: gnu.scm:123
+#: gnu.scm:124
 #, scheme-format
 msgid ""
 "You may use @command{guix system search ~a} to search for a service\n"
@@ -54,57 +54,52 @@ msgstr ""
 "Se você obtiver a linha @code{location: gnu/services/foo.scm:188:2},\n"
 "adicione @code{foo} à forma @code{use-service-modules}."
 
-#: gnu.scm:132
+#: gnu.scm:133
 #, scheme-format
 msgid "Try adding @code{(use-service-modules ~a)}."
 msgstr "Tente adicionar @code{(use-service-modules ~a)}."
 
-#: gnu/packages.scm:92
+#: gnu/packages.scm:96
 #, scheme-format
 msgid "~a: patch not found"
 msgstr "~a: patch não localizado"
 
-#: gnu/packages.scm:108
-#, scheme-format
-msgid "could not find bootstrap binary '~a' for system '~a'"
-msgstr "não foi possível localizar binário de inicialização \"~a\" para o sistema \"~a\""
-
-#: gnu/packages.scm:259
+#: gnu/packages.scm:460 gnu/packages.scm:501
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "especificação ambígua de pacote \"~a\"~%"
 
-#: gnu/packages.scm:260
+#: gnu/packages.scm:461 gnu/packages.scm:502
 #, scheme-format
 msgid "choosing ~a@~a from ~a~%"
 msgstr "escolhendo ~a@~a de ~a~%"
 
-#: gnu/packages.scm:265 guix/scripts/package.scm:238
+#: gnu/packages.scm:466 guix/scripts/package.scm:211
 #, scheme-format
 msgid "package '~a' has been superseded by '~a'~%"
 msgstr "pacote \"~a\" foi substituído por \"~a\"~%"
 
-#: gnu/packages.scm:272
+#: gnu/packages.scm:473 gnu/packages.scm:490
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: pacote não encontrado para versão ~a~%"
 
-#: gnu/packages.scm:273
+#: gnu/packages.scm:474 gnu/packages.scm:491
 #, scheme-format
 msgid "~A: unknown package~%"
 msgstr "~A: pacote desconhecido~%"
 
-#: gnu/packages.scm:301
+#: gnu/packages.scm:530
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
 msgstr "pacote \"~a\" carece de mensagem de saída \"~a\"~%"
 
-#: gnu/services.scm:238
+#: gnu/services.scm:242
 #, scheme-format
 msgid "~a: no value specified for service of type '~a'"
 msgstr "~a: nenhum valor especificado para um serviço do tipo \"~a\""
 
-#: gnu/services.scm:336
+#: gnu/services.scm:340
 msgid ""
 "Build the operating system top-level directory, which in\n"
 "turn refers to everything the operating system needs: its kernel, initrd,\n"
@@ -114,7 +109,7 @@ msgstr ""
 "se refere a tudo que o sistema operacional precisa: seu kernel, initrd,\n"
 "perfil do sistema, script de inicialização e assim por diante."
 
-#: gnu/services.scm:366
+#: gnu/services.scm:370
 msgid ""
 "Produce the operating system's boot script, which is spawned\n"
 "by the initrd once the root file system is mounted."
@@ -122,7 +117,17 @@ msgstr ""
 "Produz o script de inicialização do sistema operacional, que\n"
 "é gerado pelo initrd quando o sistema de arquivos raiz é montado."
 
-#: gnu/services.scm:422
+#: gnu/services.scm:451
+msgid ""
+"Store provenance information about the system in the system\n"
+"itself: the channels used when building the system, and its configuration\n"
+"file, when available."
+msgstr ""
+"Armazena informações de proveniência sobre o sistema no próprio\n"
+"sistema: os canais usados na compilação do sistema e seu arquivo de\n"
+"configuração, quando disponível."
+
+#: gnu/services.scm:509
 msgid ""
 "Delete files from @file{/tmp}, @file{/var/run}, and other\n"
 "temporary locations at boot time."
@@ -130,7 +135,7 @@ msgstr ""
 "Exclui arquivos a partir de @file{/tmp}, @file{/var/run}\n"
 "e outros locais temporários no momento da inicialização."
 
-#: gnu/services.scm:476
+#: gnu/services.scm:563
 msgid ""
 "Run @dfn{activation} code at boot time and upon\n"
 "@command{guix system reconfigure} completion."
@@ -138,7 +143,7 @@ msgstr ""
 "Executa o código @dfn{activation} na inicialização e\n"
 "após conclusão com @command{guix system reconfigure}."
 
-#: gnu/services.scm:527
+#: gnu/services.scm:614
 msgid ""
 "Add special files to the root file system---e.g.,\n"
 "@file{/usr/bin/env}."
@@ -146,11 +151,11 @@ msgstr ""
 "Adiciona arquivos especiais ao sistema de arquivos raiz,\n"
 "por exemplo @file{/usr/bin/env}."
 
-#: gnu/services.scm:563
+#: gnu/services.scm:650
 msgid "Populate the @file{/etc} directory."
 msgstr "Popula o diretório @file{/etc}."
 
-#: gnu/services.scm:580
+#: gnu/services.scm:667
 msgid ""
 "Populate @file{/run/setuid-programs} with the specified\n"
 "executables, making them setuid-root."
@@ -158,7 +163,7 @@ msgstr ""
 "Preenche @file{/run/setuid-programs} com os executáveis\n"
 "especificados, tornando-os setuid-root."
 
-#: gnu/services.scm:600
+#: gnu/services.scm:687
 msgid ""
 "This is the @dfn{system profile}, available as\n"
 "@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
@@ -168,7 +173,7 @@ msgstr ""
 "@file{/run/current-system/profile}. Ele contém pacotes que o sysadmin\n"
 "quer que esteja globalmente disponível para todos os usuários do sistema."
 
-#: gnu/services.scm:620
+#: gnu/services.scm:707
 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"
@@ -176,9 +181,9 @@ msgid ""
 msgstr ""
 "Faz arquivos ``firmware'' carregáveis pelo kernel do sistema\n"
 "operacional. O firmware pode ser carregado em alguns dispositivos da máquina,\n"
-"como como placas de rede Wi-Fi."
+"como placas de rede WiFi."
 
-#: gnu/services.scm:651
+#: gnu/services.scm:738
 msgid ""
 "Register garbage-collector roots---i.e., store items that\n"
 "will not be reclaimed by the garbage collector."
@@ -186,57 +191,57 @@ msgstr ""
 "Registra raízes de coletor de lixo --- isto é, armazena\n"
 "itens que não serão recuperados pelo coletor de lixo."
 
-#: gnu/services.scm:676
+#: gnu/services.scm:764
 #, scheme-format
 msgid "no target of type '~a' for service '~a'"
 msgstr "nenhum alvo do tipo \"~a\" para o serviço \"~a\""
 
-#: gnu/services.scm:702 gnu/services.scm:795
+#: gnu/services.scm:790 gnu/services.scm:909
 #, scheme-format
 msgid "more than one target service of type '~a'"
 msgstr "mais de um serviço alvo do tipo \"~a\""
 
-#: gnu/services.scm:785
+#: gnu/services.scm:899
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "serviço do tipo \"~a\" não localizado"
 
-#: gnu/system.scm:320
+#: gnu/system.scm:347
 #, scheme-format
 msgid "unrecognized boot parameters at '~a'~%"
 msgstr "parâmetros de inicialização não reconhecidos em \"~a\"~%"
 
-#: gnu/system.scm:731
+#: gnu/system.scm:772
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
-msgstr "usando um texto para arquivo \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
+msgstr "o uso de um texto para arquivo \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
 
-#: gnu/system.scm:747
+#: gnu/system.scm:788
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
-msgstr "usando um valor monádico para \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
+msgstr "o uso de um valor monádico para \"~a\" está obsoleto; em vez disso, use \"plain-file\"~%"
 
-#: gnu/system.scm:892
+#: gnu/system.scm:938
 #, scheme-format
 msgid "~a: invalid locale name"
 msgstr "~a: nome de localidade inválido"
 
-#: gnu/services/shepherd.scm:175
+#: gnu/services/shepherd.scm:194
 #, scheme-format
 msgid "service '~a' provided more than once"
 msgstr "serviço \"~a\" fornecido mais de uma vez"
 
-#: gnu/services/shepherd.scm:190
+#: gnu/services/shepherd.scm:209
 #, scheme-format
 msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr "serviço \"~a\" requer \"~a\", o que não é fornecido por nenhum serviço"
 
-#: gnu/system/mapped-devices.scm:142
+#: gnu/system/mapped-devices.scm:136
 #, scheme-format
 msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
 msgstr "você pode precisar desses módulos no initrd para ~a:~{ ~a~}"
 
-#: gnu/system/mapped-devices.scm:146
+#: gnu/system/mapped-devices.scm:140
 #, scheme-format
 msgid ""
 "Try adding them to the\n"
@@ -249,6 +254,9 @@ msgid ""
 "   (initrd-modules (append (list~{ ~s~})\n"
 "                           %base-initrd-modules)))\n"
 "@end example\n"
+"\n"
+"If you think this diagnostic is inaccurate, use the @option{--skip-checks}\n"
+"option of @command{guix system}.\n"
 msgstr ""
 "Tente adicioná-los ao campo\n"
 "@code{initrd-modules} de sua declaração @code{operating-system}, junto\n"
@@ -260,42 +268,857 @@ msgstr ""
 "   (initrd-modules (append (list~{ ~s~})\n"
 "                           %base-initrd-modules)))\n"
 "@end example\n"
+"\n"
+"Se você acredita que esse diagnóstico está incorreto, use a opção\n"
+"@option{--skip-checks} de @command{guix system}.\n"
 
-#: gnu/system/mapped-devices.scm:222
+#: gnu/system/mapped-devices.scm:219
 #, scheme-format
 msgid "no LUKS partition with UUID '~a'"
 msgstr "nenhuma partição LUKS com UUID \"~a\""
 
-#: gnu/system/shadow.scm:245
+#: gnu/system/shadow.scm:236
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
 msgstr "grupo suplementar \"~a\" do usuário \"~a\" não está declarado"
 
-#: gnu/system/shadow.scm:255
+#: gnu/system/shadow.scm:246
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
 msgstr "grupo primário \"~a\" do usuário \"~a\" não está declarado"
 
-#: guix/scripts.scm:56
+#: guix/import/opam.scm:141
+#, scheme-format
+msgid "Package not found in opam repository: ~a~%"
+msgstr "Pacote não encontrado no repositório opam: ~a~%"
+
+#: guix/import/opam.scm:357
+msgid "Updater for OPAM packages"
+msgstr "Atualizador para pacotes OPAM"
+
+#: gnu/installer.scm:194
+msgid "Locale"
+msgstr "Localidade"
+
+#: gnu/installer.scm:210 gnu/installer/newt/timezone.scm:58
+msgid "Timezone"
+msgstr "Fuso horário"
+
+#: gnu/installer.scm:226
+msgid "Keyboard mapping selection"
+msgstr "Seleção do mapeamento de teclado"
+
+#: gnu/installer.scm:234 gnu/installer/newt/hostname.scm:26
+msgid "Hostname"
+msgstr "Nome da máquina"
+
+#: gnu/installer.scm:243
+msgid "Network selection"
+msgstr "Seleção de rede"
+
+#: gnu/installer.scm:250 gnu/installer/newt/user.scm:67
+#: gnu/installer/newt/user.scm:203
+msgid "User creation"
+msgstr "Criação de usuário"
+
+#: gnu/installer.scm:258
+msgid "Services"
+msgstr "Serviços"
+
+#: gnu/installer.scm:269
+msgid "Partitioning"
+msgstr "Particionamento"
+
+#: gnu/installer.scm:276 gnu/installer/newt/final.scm:51
+msgid "Configuration file"
+msgstr "Arquivo de configuração"
+
+#: gnu/installer/connman.scm:196
+msgid "Could not determine the state of connman."
+msgstr "Não foi possível determinar o estado do connman."
+
+#: gnu/installer/connman.scm:322
+msgid "Unable to find expected regexp."
+msgstr "Não foi possível localizar o regexp esperado."
+
+#: gnu/installer/newt.scm:60
+#, scheme-format
+msgid "The installer has encountered an unexpected problem. The backtrace is displayed below. Please report it by email to <~a>."
+msgstr "O instalador encontrou um problema inesperado. O backtrace é exibido abaixo. Por favor, relate por e-mail para <~a>."
+
+#: gnu/installer/newt.scm:63
+msgid "Unexpected problem"
+msgstr "Problema inesperado"
+
+#: gnu/installer/newt/ethernet.scm:66
+msgid "No ethernet service available, please try again."
+msgstr "Nenhuma serviço ethernet disponível. Por favor, tente novamente."
+
+#: gnu/installer/newt/ethernet.scm:67
+msgid "No service"
+msgstr "Nenhum serviço"
+
+#: gnu/installer/newt/ethernet.scm:76
+msgid "Please select an ethernet network."
+msgstr "Por favor, selecione uma rede ethernet."
+
+#: gnu/installer/newt/ethernet.scm:77
+msgid "Ethernet connection"
+msgstr "Conexão ethernet"
+
+#: gnu/installer/newt/ethernet.scm:81 gnu/installer/newt/keymap.scm:44
+#: gnu/installer/newt/locale.scm:43 gnu/installer/newt/network.scm:63
+#: gnu/installer/newt/network.scm:84 gnu/installer/newt/page.scm:177
+#: gnu/installer/newt/page.scm:510 gnu/installer/newt/page.scm:580
+#: gnu/installer/newt/partition.scm:55 gnu/installer/newt/partition.scm:84
+#: gnu/installer/newt/partition.scm:116 gnu/installer/newt/partition.scm:127
+#: gnu/installer/newt/partition.scm:624 gnu/installer/newt/partition.scm:645
+#: gnu/installer/newt/partition.scm:685 gnu/installer/newt/partition.scm:736
+#: gnu/installer/newt/partition.scm:747 gnu/installer/newt/services.scm:85
+#: gnu/installer/newt/timezone.scm:63 gnu/installer/newt/user.scm:202
+#: gnu/installer/newt/wifi.scm:205
+msgid "Exit"
+msgstr "Sair"
+
+#: gnu/installer/newt/final.scm:44
+#, scheme-format
+msgid "We're now ready to proceed with the installation! A system configuration file has been generated, it is displayed below.  This file will be available as '~a' on the installed system.  The new system will be created from this file once you've pressed OK.  This will take a few minutes."
+msgstr "Agora estamos prontos para prosseguir com a instalação! Um arquivo de configuração do sistema foi gerado e está exibido abaixo. Este arquivo estará disponível como \"~a\" no sistema instalado. O novo sistema será criado a partir desse arquivo depois que você pressionar OK. Isto levará alguns minutos."
+
+#: gnu/installer/newt/final.scm:66
+msgid "Installation complete"
+msgstr "Instalação concluída"
+
+#: gnu/installer/newt/final.scm:67 gnu/installer/newt/welcome.scm:115
+msgid "Reboot"
+msgstr "Reiniciar"
+
+#: gnu/installer/newt/final.scm:68
+msgid "Congratulations!  Installation is now complete.  You may remove the device containing the installation image and press the button to reboot."
+msgstr "Parabéns! A instalação foi concluída. Você pode remover o dispositivo que contém a imagem de instalação e pressionar o botão para reinicializar."
+
+#: gnu/installer/newt/final.scm:77
+msgid "Installation failed"
+msgstr "Instalação falhou"
+
+#: gnu/installer/newt/final.scm:78
+msgid "Restart installer"
+msgstr "Reiniciar o instalador"
+
+#: gnu/installer/newt/final.scm:79
+msgid "Retry system install"
+msgstr "Tentar novamente a instalação do sistema"
+
+#: gnu/installer/newt/final.scm:80
+msgid "The final system installation step failed.  You can retry the last step, or restart the installer."
+msgstr "A etapa final de instalação do sistema falhou. Você pode repetir a última etapa ou reiniciar o instalador."
+
+#: gnu/installer/newt/hostname.scm:25
+msgid "Please enter the system hostname."
+msgstr "Por favor, insira o nome de máquina do sistema."
+
+#: gnu/installer/newt/keymap.scm:37
+msgid "Layout"
+msgstr "Disposição"
+
+#: gnu/installer/newt/keymap.scm:40
+msgid "Please choose your keyboard layout."
+msgstr "Por favor, escolha a disposição do teclado."
+
+#: gnu/installer/newt/keymap.scm:52
+msgid "Variant"
+msgstr "Variação"
+
+#: gnu/installer/newt/keymap.scm:55
+msgid "Please choose a variant for your keyboard layout."
+msgstr "Por favor, escolha a variação para a disposição do seu teclado."
+
+#: gnu/installer/newt/keymap.scm:59 gnu/installer/newt/locale.scm:63
+#: gnu/installer/newt/locale.scm:78 gnu/installer/newt/locale.scm:94
+#: gnu/installer/newt/partition.scm:581 gnu/installer/newt/timezone.scm:64
+msgid "Back"
+msgstr "Voltar"
+
+#: gnu/installer/newt/locale.scm:36
+msgid "Locale language"
+msgstr "Idioma da localidade"
+
+#: gnu/installer/newt/locale.scm:37
+msgid "Choose the language to use for the installation process and for the installed system."
+msgstr "Escolha o idioma para usar para o processo de instalação e para o sistema instalado."
+
+#: gnu/installer/newt/locale.scm:57
+msgid "Locale location"
+msgstr "Local da localidade"
+
+#: gnu/installer/newt/locale.scm:60
+msgid "Choose a territory for this language."
+msgstr "Escolha um território para esse idioma."
+
+#: gnu/installer/newt/locale.scm:71
+msgid "Locale codeset"
+msgstr "Conjunto de codificação da localidade"
+
+#: gnu/installer/newt/locale.scm:74
+msgid "Choose the locale encoding."
+msgstr "Escolha a codificação da localidade."
+
+#: gnu/installer/newt/locale.scm:86
+msgid "Locale modifier"
+msgstr "Modificador da localidade"
+
+#: gnu/installer/newt/locale.scm:89
+msgid "Choose your locale's modifier. The most frequent modifier is euro. It indicates that you want to use Euro as the currency symbol."
+msgstr "Escolha o modificador da sua localidade. O modificador mais frequente é o euro. Ele indica que você deseja usar Euro como o símbolo de moeda."
+
+#: gnu/installer/newt/locale.scm:190
+msgid "No location"
+msgstr "Nenhuma local"
+
+#: gnu/installer/newt/locale.scm:217
+msgid "No modifier"
+msgstr "Nenhum modificador"
+
+#: gnu/installer/newt/menu.scm:35
+msgid "Choose where you want to resume the install.  You can also abort the installation by pressing the Abort button."
+msgstr "Escolha onde você deseja retomar a instalação. Você também pode cancelar a instalação pressionando o botão Abortar."
+
+#: gnu/installer/newt/menu.scm:37
+msgid "Installation menu"
+msgstr "Menu de instalação"
+
+#: gnu/installer/newt/menu.scm:41
+msgid "Abort"
+msgstr "Abortar"
+
+#: gnu/installer/newt/network.scm:61 gnu/installer/newt/network.scm:80
+msgid "Internet access"
+msgstr "Acesso à Internet"
+
+#: gnu/installer/newt/network.scm:62 gnu/installer/newt/page.scm:176
+msgid "Continue"
+msgstr "Continuar"
+
+#: gnu/installer/newt/network.scm:64
+msgid "The install process requires Internet access but no network devices were found. Do you want to continue anyway?"
+msgstr "O processo de instalação requer acesso à Internet, mas nenhum dispositivo de rede foi encontrado. Você deseja continuar mesmo assim?"
+
+#: gnu/installer/newt/network.scm:78
+msgid "The install process requires Internet access. Please select a network device."
+msgstr "O processo de instalação requer acesso à Internet. Por favor, selecione um dispositivo de rede."
+
+#: gnu/installer/newt/network.scm:103
+msgid "Powering technology"
+msgstr "Ativando a tecnologia"
+
+#: gnu/installer/newt/network.scm:104
+#, scheme-format
+msgid "Waiting for technology ~a to be powered."
+msgstr "Esperando pela tecnologia ~a ser ativa."
+
+#: gnu/installer/newt/network.scm:124
+msgid "Checking connectivity"
+msgstr "Verificando conectividade"
+
+#: gnu/installer/newt/network.scm:125
+msgid "Waiting for Internet access establishment..."
+msgstr "Aguardando o estabelecimento de acesso à Internet..."
+
+#: gnu/installer/newt/network.scm:135
+msgid "The selected network does not provide access to the Internet, please try again."
+msgstr "A rede selecionada não fornece o acesso à Internet, por favor tente novamente."
+
+#: gnu/installer/newt/network.scm:137 gnu/installer/newt/wifi.scm:108
+msgid "Connection error"
+msgstr "Erro de conexão"
+
+#: gnu/installer/newt/page.scm:72
+#, scheme-format
+msgid "Connecting to ~a, please wait."
+msgstr "Conectando a ~a. Por favor, aguarde."
+
+#: gnu/installer/newt/page.scm:73
+msgid "Connection in progress"
+msgstr "Conexão em progresso"
+
+#: gnu/installer/newt/page.scm:92 gnu/installer/newt/user.scm:59
+msgid "Show"
+msgstr "Mostrar"
+
+#: gnu/installer/newt/page.scm:99 gnu/installer/newt/page.scm:509
+#: gnu/installer/newt/page.scm:579 gnu/installer/newt/partition.scm:444
+#: gnu/installer/newt/partition.scm:623 gnu/installer/newt/partition.scm:644
+#: gnu/installer/newt/partition.scm:683 gnu/installer/newt/user.scm:65
+#: gnu/installer/newt/user.scm:201
+msgid "OK"
+msgstr "OK"
+
+#: gnu/installer/newt/page.scm:125
+msgid "Please enter a non empty input."
+msgstr "Por favor, insira uma entrada não vazia."
+
+#: gnu/installer/newt/page.scm:126 gnu/installer/newt/user.scm:121
+msgid "Empty input"
+msgstr "Entrada vazia"
+
+#: gnu/installer/newt/page.scm:582
+msgid "Edit"
+msgstr "Editar"
+
+#: gnu/installer/newt/partition.scm:46
+msgid "Everything is one partition"
+msgstr "Tudo é uma partição"
+
+#: gnu/installer/newt/partition.scm:47
+msgid "Separate /home partition"
+msgstr "Separar partição /home"
+
+#: gnu/installer/newt/partition.scm:49
+msgid "Please select a partitioning scheme."
+msgstr "Por favor, selecione um esquema de particionamento."
+
+#: gnu/installer/newt/partition.scm:50
+msgid "Partition scheme"
+msgstr "Esquema de partição"
+
+#: gnu/installer/newt/partition.scm:62
+msgid "We are about to format your hard disk.  All its data will be lost.  Do you wish to continue?"
+msgstr "Estamos prestes a formatar seu disco rígido. Todos os seus dados serão perdidos. Você deseja continuar?"
+
+#: gnu/installer/newt/partition.scm:64
+msgid "Format disk?"
+msgstr "Formatar o disco?"
+
+#: gnu/installer/newt/partition.scm:67
+msgid "Partition formatting is in progress, please wait."
+msgstr "A formatação da partição está em andamento. Por favor, aguarde."
+
+#: gnu/installer/newt/partition.scm:68
+msgid "Preparing partitions"
+msgstr "Preparando partições"
+
+#: gnu/installer/newt/partition.scm:79
+msgid "Please select a disk."
+msgstr "Por favor, selecione um disco."
+
+#: gnu/installer/newt/partition.scm:80
+msgid "Disk"
+msgstr "Disco"
+
+#: gnu/installer/newt/partition.scm:92
+msgid "Select a new partition table type. Be careful, all data on the disk will be lost."
+msgstr "Selecione um novo tipo de tabela de partição. Tenha cuidado, todos os dados no disco serão perdidos."
+
+#: gnu/installer/newt/partition.scm:94
+msgid "Partition table"
+msgstr "Tabela de partição"
+
+#: gnu/installer/newt/partition.scm:111
+msgid "Please select a partition type."
+msgstr "Por favor, selecione um tipo de partição."
+
+#: gnu/installer/newt/partition.scm:112
+msgid "Partition type"
+msgstr "Tipo de partição"
+
+#: gnu/installer/newt/partition.scm:122
+msgid "Please select the file-system type for this partition."
+msgstr "Por favor, selecione o tipo de sistema de arquivos para esta partição."
+
+#: gnu/installer/newt/partition.scm:123
+msgid "File-system type"
+msgstr "Tipo do sistema de arquivos"
+
+#: gnu/installer/newt/partition.scm:136
+msgid "Primary partitions count exceeded."
+msgstr "Contagem de partições primárias excedida."
+
+#: gnu/installer/newt/partition.scm:137 gnu/installer/newt/partition.scm:142
+#: gnu/installer/newt/partition.scm:147
+msgid "Creation error"
+msgstr "Erro de criação"
+
+#: gnu/installer/newt/partition.scm:141
+msgid "Extended partition creation error."
+msgstr "Erro de criação de partição estendida."
+
+#: gnu/installer/newt/partition.scm:146
+msgid "Logical partition creation error."
+msgstr "Erro de criação de partição lógica."
+
+#: gnu/installer/newt/partition.scm:160
+#, scheme-format
+msgid "Please enter the password for the encryption of partition ~a (label: ~a)."
+msgstr "Por favor, insira a senha para a criptografia da partição ~a (rótulo: ~a)."
+
+#: gnu/installer/newt/partition.scm:162 gnu/installer/newt/wifi.scm:92
+msgid "Password required"
+msgstr "Senha requerida"
+
+#: gnu/installer/newt/partition.scm:167
+#, scheme-format
+msgid "Please confirm the password for the encryption of partition ~a (label: ~a)."
+msgstr "Por favor, confirme a senha para a criptografia da partição ~a (rótulo: ~a)."
+
+#: gnu/installer/newt/partition.scm:169 gnu/installer/newt/user.scm:158
+msgid "Password confirmation required"
+msgstr "Confirmação de senha requerida"
+
+#: gnu/installer/newt/partition.scm:181 gnu/installer/newt/user.scm:166
+msgid "Password mismatch, please try again."
+msgstr "As senhas são diferentes. Por favor, tente novamente."
+
+#: gnu/installer/newt/partition.scm:182 gnu/installer/newt/user.scm:167
+msgid "Password error"
+msgstr "Erro na senha"
+
+#: gnu/installer/newt/partition.scm:268
+msgid "Please enter the partition gpt name."
+msgstr "Por favor, insira o nome gpt da partição."
+
+#: gnu/installer/newt/partition.scm:269
+msgid "Partition name"
+msgstr "Nome da partição"
+
+#: gnu/installer/newt/partition.scm:299
+msgid "Please enter the encrypted label"
+msgstr "Por favor, insira o rótulo criptografado"
+
+#: gnu/installer/newt/partition.scm:300
+msgid "Encryption label"
+msgstr "Rótulo de criptografia"
+
+#: gnu/installer/newt/partition.scm:317
+#, scheme-format
+msgid "Please enter the size of the partition. The maximum size is ~a."
+msgstr "Por favor, digite o tamanho da partição. O tamanho máximo é ~a."
+
+#: gnu/installer/newt/partition.scm:319
+msgid "Partition size"
+msgstr "Tamanho da partição"
+
+#: gnu/installer/newt/partition.scm:337
+msgid "The percentage can not be superior to 100."
+msgstr "A porcentagem não pode ser superior a 100."
+
+#: gnu/installer/newt/partition.scm:338 gnu/installer/newt/partition.scm:343
+#: gnu/installer/newt/partition.scm:348
+msgid "Size error"
+msgstr "Erro de tamanho"
+
+#: gnu/installer/newt/partition.scm:342
+msgid "The requested size is incorrectly formatted, or too large."
+msgstr "O tamanho solicitado está formatado incorretamente ou é muito grande."
+
+#: gnu/installer/newt/partition.scm:347
+msgid "The request size is superior to the maximum size."
+msgstr "O tamanho da solicitação é superior ao tamanho máximo."
+
+#: gnu/installer/newt/partition.scm:367
+msgid "Please enter the desired mounting point for this partition. Leave this field empty if you don't want to set a mounting point."
+msgstr "Por favor, digite o ponto de montagem desejado para esta partição. Deixe este campo vazio se não quiser definir um ponto de montagem."
+
+#: gnu/installer/newt/partition.scm:369
+msgid "Mounting point"
+msgstr "Ponto de montagem"
+
+#: gnu/installer/newt/partition.scm:433
+#, scheme-format
+msgid "Creating ~a partition starting at ~a of ~a."
+msgstr "Criando a partição ~a iniciando em ~a de ~a."
+
+#: gnu/installer/newt/partition.scm:435
+#, scheme-format
+msgid "You are currently editing partition ~a."
+msgstr "Você está editando a partição ~a."
+
+#: gnu/installer/newt/partition.scm:438
+msgid "Partition creation"
+msgstr "Criação de partição"
+
+#: gnu/installer/newt/partition.scm:439
+msgid "Partition edit"
+msgstr "Editar partição"
+
+#: gnu/installer/newt/partition.scm:620
+#, scheme-format
+msgid "Are you sure you want to delete everything on disk ~a?"
+msgstr "Tem certeza de que deseja excluir tudo no disco ~a?"
+
+#: gnu/installer/newt/partition.scm:622
+msgid "Delete disk"
+msgstr "Excluir disco"
+
+#: gnu/installer/newt/partition.scm:636
+msgid "You cannot delete a free space area."
+msgstr "Você não pode excluir uma área de espaço livre."
+
+#: gnu/installer/newt/partition.scm:637 gnu/installer/newt/partition.scm:643
+msgid "Delete partition"
+msgstr "Excluir partição"
+
+#: gnu/installer/newt/partition.scm:641
+#, scheme-format
+msgid "Are you sure you want to delete partition ~a?"
+msgstr "Tem certeza de que deseja excluir a partição ~a?"
+
+#: gnu/installer/newt/partition.scm:658
+msgid ""
+"You can change a disk's partition table by selecting it and pressing ENTER. You can also edit a partition by selecting it and pressing ENTER, or remove it by pressing DELETE. To create a new partition, select a free space area and press ENTER.\n"
+"\n"
+"At least one partition must have its mounting point set to '/'."
+msgstr ""
+"Você pode alterar a tabela de partição de um disco selecionando-a e pressionando ENTER. Você também pode editar uma partição selecionando-a e pressionando ENTER, ou removendo-a pressionando DELETE. Para criar uma nova partição, selecione uma área de espaço livre e pressione ENTER.\n"
+"\n"
+"Pelo menos uma partição deve ter seu ponto de montagem definido como \"/\"."
+
+#: gnu/installer/newt/partition.scm:664
+#, scheme-format
+msgid "This is the proposed partitioning. It is still possible to edit it or to go back to install menu by pressing the Exit button.~%~%"
+msgstr "Este é o particionamento proposto. Ainda é possível editá-lo ou voltar ao menu de instalação pressionando o botão Sair.~%~%"
+
+#: gnu/installer/newt/partition.scm:674
+msgid "Guided partitioning"
+msgstr "Particionamento guiado"
+
+#: gnu/installer/newt/partition.scm:675
+msgid "Manual partitioning"
+msgstr "Particionamento manual"
+
+#: gnu/installer/newt/partition.scm:694
+msgid "No root mount point found."
+msgstr "Nenhuma ponto de montagem raiz encontrado."
+
+#: gnu/installer/newt/partition.scm:695
+msgid "Missing mount point"
+msgstr "Faltando ponto de montagem"
+
+#: gnu/installer/newt/partition.scm:726
+msgid "Guided - using the entire disk"
+msgstr "Guiado - usando todo o disco"
+
+#: gnu/installer/newt/partition.scm:727
+msgid "Guided - using the entire disk with encryption"
+msgstr "Guiado - usando todo o disco com criptografia"
+
+#: gnu/installer/newt/partition.scm:728
+msgid "Manual"
+msgstr "Manual"
+
+#: gnu/installer/newt/partition.scm:730
+msgid "Please select a partitioning method."
+msgstr "Por favor, selecione um método de particionamento."
+
+#: gnu/installer/newt/partition.scm:731
+msgid "Partitioning method"
+msgstr "Método de particionamento"
+
+#: gnu/installer/newt/services.scm:36
+msgid "Please select the desktop(s) environment(s) you wish to install. If you select multiple desktops environments, you will be able to choose the one to use on the log-in screen."
+msgstr "Por favor, selecione o(s) ambiente(s) de desktop que você deseja instalar. Se você selecionar vários ambientes de desktop, poderá escolher o que usar na tela de autenticação."
+
+#: gnu/installer/newt/services.scm:39
+msgid "Desktop environment"
+msgstr "Ambiente de desktop"
+
+#: gnu/installer/newt/services.scm:56
+msgid "You can now select networking services to run on your system."
+msgstr "Agora você pode selecionar serviços de rede para executar no seu sistema."
+
+#: gnu/installer/newt/services.scm:58
+msgid "Network service"
+msgstr "Serviço de rede"
+
+#: gnu/installer/newt/services.scm:71
+msgid "Network management"
+msgstr "Gerenciamento de rede"
+
+#: gnu/installer/newt/services.scm:74
+msgid ""
+"Choose the method to manage network connections.\n"
+"\n"
+"We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP client may be enough for a server."
+msgstr ""
+"Escolha o método para gerenciar conexões de rede.\n"
+"\n"
+"Recomendamos o NetworkManager ou o Connman para um laptop compatível com WiFi; o cliente DHCP pode ser suficiente para um servidor."
+
+#: gnu/installer/newt/timezone.scm:59
+msgid "Please select a timezone."
+msgstr "Por favor, selecione um fuso horário."
+
+#: gnu/installer/newt/user.scm:44
+msgid "Name"
+msgstr "Nome"
+
+#: gnu/installer/newt/user.scm:46
+msgid "Real name"
+msgstr "Nome real"
+
+#: gnu/installer/newt/user.scm:48
+msgid "Home directory"
+msgstr "Pasta pessoal"
+
+#: gnu/installer/newt/user.scm:50
+msgid "Password"
+msgstr "Senha"
+
+#: gnu/installer/newt/user.scm:120
+msgid "Empty inputs are not allowed."
+msgstr "Entradas vazias não são permitidas."
+
+#: gnu/installer/newt/user.scm:157
+msgid "Please confirm the password."
+msgstr "Por favor, confirme a senha."
+
+#. TRANSLATORS: Leave "root" untranslated: it refers to the name of the
+#. system administrator account.
+#: gnu/installer/newt/user.scm:174
+msgid "Please choose a password for the system administrator (\"root\")."
+msgstr "Por favor, escolha uma senha para o administrador do sistema (\"root\")."
+
+#: gnu/installer/newt/user.scm:176
+msgid "System administrator password"
+msgstr "Senha do administrador do sistema"
+
+#: gnu/installer/newt/user.scm:189
+msgid "Please add at least one user to system using the 'Add' button."
+msgstr "Por favor, adicione pelo menos um usuário para o sistema usando o botão \"Adicionar\"."
+
+#: gnu/installer/newt/user.scm:192
+msgid "Add"
+msgstr "Adicionar"
+
+#: gnu/installer/newt/user.scm:193
+msgid "Delete"
+msgstr "Excluir"
+
+#: gnu/installer/newt/user.scm:252
+msgid "Please create at least one user."
+msgstr "Por favor, crie pelo menos um usuário."
+
+#: gnu/installer/newt/user.scm:253
+msgid "No user"
+msgstr "Nenhum usuário"
+
+#: gnu/installer/newt/welcome.scm:95
+msgid "GNU Guix install"
+msgstr "Instalação do GNU Guix"
+
+#: gnu/installer/newt/welcome.scm:96
+msgid ""
+"Welcome to GNU Guix system installer!\n"
+"\n"
+"You will be guided through a graphical installation program.\n"
+"\n"
+"If you are familiar with GNU/Linux and you want tight control over the installation process, you can instead choose manual installation.  Documentation is accessible at any time by pressing Ctrl-Alt-F2."
+msgstr ""
+"Bem-vindo ao instalado do sistema GNU Guix!\n"
+"\n"
+"Você será guiado por um programa gráfico de instalação.\n"
+"\n"
+"Se você estiver familiarizado com o GNU/Linux e quiser um controle rígido sobre o processo de instalação, você pode optar pela instalação manual. A documentação está acessível a qualquer momento, pressionando Ctrl-Alt-F2."
+
+#: gnu/installer/newt/welcome.scm:105
+msgid "Graphical install using a terminal based interface"
+msgstr "Instalação gráfica usando uma interface baseada em terminal"
+
+#: gnu/installer/newt/welcome.scm:108
+msgid "Install using the shell based process"
+msgstr "Instalar usando o processo baseado em shell"
+
+#: gnu/installer/newt/wifi.scm:82
+msgid "Unable to find a wifi technology"
+msgstr "Não foi possível encontrar uma tecnologia WiFi"
+
+#: gnu/installer/newt/wifi.scm:86
+msgid "Scanning wifi for available networks, please wait."
+msgstr "Varrendo WiFi para redes disponíveis. Por favor, aguarde."
+
+#: gnu/installer/newt/wifi.scm:87
+msgid "Scan in progress"
+msgstr "Varredura em progresso"
+
+#: gnu/installer/newt/wifi.scm:91
+msgid "Please enter the wifi password."
+msgstr "Por favor, digite uma senha de WiFi."
+
+#: gnu/installer/newt/wifi.scm:98
+#, scheme-format
+msgid "The password you entered for ~a is incorrect."
+msgstr "A senha que você digitou para ~a está incorreta."
+
+#: gnu/installer/newt/wifi.scm:100
+msgid "Wrong password"
+msgstr "Senha incorreta"
+
+#: gnu/installer/newt/wifi.scm:106
+#, scheme-format
+msgid "An error occurred while trying to connect to ~a, please retry."
+msgstr "Ocorreu um erro ao tentar se conectar a ~a. Por favor, tente novamente."
+
+#: gnu/installer/newt/wifi.scm:200
+msgid "Please select a wifi network."
+msgstr "Por favor, selecione uma rede WiFi."
+
+#: gnu/installer/newt/wifi.scm:206
+msgid "Scan"
+msgstr "Procurar"
+
+#: gnu/installer/newt/wifi.scm:211
+msgid "No wifi detected"
+msgstr "Nenhum WiFi detectado"
+
+#: gnu/installer/newt/wifi.scm:226
+msgid "Wifi"
+msgstr "WiFi"
+
+#: gnu/installer/parted.scm:395 gnu/installer/parted.scm:432
+msgid "Free space"
+msgstr "Espaço livre"
+
+#: gnu/installer/parted.scm:1345
+#, scheme-format
+msgid "Device ~a is still in use."
+msgstr "O dispositivo ~a ainda está em uso."
+
+#: gnu/installer/services.scm:88
+msgid "OpenSSH secure shell daemon (sshd)"
+msgstr "OpenSSH - daemon de shell seguro (sshd)"
+
+#: gnu/installer/services.scm:92
+msgid "Tor anonymous network router"
+msgstr "Tor - roteador de rede anônima"
+
+#: gnu/installer/services.scm:96
+msgid "Mozilla NSS certificates, for HTTPS access"
+msgstr "Certificados NSS da Mozilla, para acesso HTTPS"
+
+#: gnu/installer/services.scm:103
+msgid "NetworkManager network connection manager"
+msgstr "NetworkManager - gerenciador de conexão de rede"
+
+#: gnu/installer/services.scm:108
+msgid "Connman network connection manager"
+msgstr "Connman - gerenciador de conexão de rede"
+
+#: gnu/installer/services.scm:113
+msgid "DHCP client (dynamic IP address assignment)"
+msgstr "Cliente DHCP (atribuição dinâmica de endereço IP)"
+
+#: gnu/installer/timezone.scm:110
+#, scheme-format
+msgid "Unable to locate path: ~a."
+msgstr "Não foi possível localizar o caminho: ~a."
+
+#: gnu/installer/utils.scm:64
+#, scheme-format
+msgid "Press Enter to continue.~%"
+msgstr "Pressione Enter para continuar.~%"
+
+#: gnu/installer/utils.scm:86
+#, scheme-format
+msgid "Command failed with exit code ~a.~%"
+msgstr "O comando falhou com código de saída ~a.~%"
+
+#: gnu/machine/ssh.scm:106
+#, scheme-format
+msgid "<machine-ssh-configuration> without a 'host-key' is deprecated~%"
+msgstr "<machine-ssh-configuration> sem uma \"host-key\" está descontinuado~%"
+
+#: gnu/machine/ssh.scm:169
+#, scheme-format
+msgid "device '~a' not found: ~a"
+msgstr "dispositivo \"~a\" não localizado: ~a"
+
+#: gnu/machine/ssh.scm:187
+#, scheme-format
+msgid "no file system with label '~a'"
+msgstr "nenhum sistema de arquivos com rótulo \"~a\""
+
+#: gnu/machine/ssh.scm:210
+#, scheme-format
+msgid "no file system with UUID '~a'"
+msgstr "nenhum sistema de arquivos com UUID \"~a\""
+
+#: gnu/machine/ssh.scm:267
+#, scheme-format
+msgid "~a missing modules ~{ ~a~}~%"
+msgstr "~a faltando módulos ~{ ~a~}~%"
+
+#: gnu/machine/ssh.scm:283
+#, scheme-format
+msgid "incorrect target system ('~a' was given, while the system reports that it is '~a')~%"
+msgstr "sistema alvo incorreto (\"~a\" foi fornecido, enquanto os relatórios de sistema que é \"~a\")~%"
+
+#: gnu/machine/ssh.scm:383
+#, scheme-format
+msgid "no signing key '~a'. have you run 'guix archive --generate-key?'"
+msgstr "nenhuma chave de assinatura \"~a\"; você executou \"guix archive --generate-key\"?"
+
+#: gnu/machine/ssh.scm:434
+msgid "could not roll-back machine"
+msgstr "não foi possível reverter a máquina"
+
+#: gnu/machine/ssh.scm:466
+msgid ""
+"Provisioning for machines that are accessible over SSH\n"
+"and have a known host-name. This entails little more than maintaining an SSH\n"
+"connection to the host."
+msgstr ""
+"Provisionamento para máquinas acessíveis por SSH e com\n"
+"um nome de máquina conhecido. Isso envolve pouco mais do que manter uma conexão\n"
+"SSH com a máquina."
+
+#: gnu/machine/ssh.scm:478
+#, scheme-format
+msgid ""
+"unsupported machine configuration '~a'\n"
+"for environment of type '~a'"
+msgstr ""
+"configuração de máquina não suportada \"~a\"\n"
+"para ambiente do tipo \"~a\""
+
+#: gnu/packages/bootstrap.scm:137
+#, scheme-format
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr "não foi possível localizar binário de inicialização \"~a\" para o sistema \"~a\""
+
+#: gnu/packages/bootstrap.scm:436
+msgid "Raw build system with direct store access"
+msgstr "Sistema de compilação bruto com acesso direto ao armazenamento"
+
+#: gnu/packages/bootstrap.scm:444
+msgid "Pre-built Guile for bootstrapping purposes."
+msgstr "Guile pré-compilado para o propósito de inicialização."
+
+#: guix/build/utils.scm:713
+#, scheme-format
+msgid "'~a~{ ~a~}' exited with status ~a; output follows:~%~%~{  ~a~%~}"
+msgstr "\"~a~{ ~a~}\" saiu com status ~a; saída a seguir:~%~%~{  ~a~%~}"
+
+#: guix/scripts.scm:61
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "argumento inválido: ~a~%"
 
-#: guix/scripts.scm:84 guix/scripts/download.scm:135
-#: guix/scripts/import/cran.scm:82 guix/scripts/import/elpa.scm:85
-#: guix/scripts/publish.scm:881 guix/scripts/edit.scm:81
+#: guix/scripts.scm:89 guix/scripts/download.scm:150
+#: guix/scripts/search.scm:69 guix/scripts/show.scm:69
+#: guix/scripts/import/cran.scm:84 guix/scripts/import/elpa.scm:84
+#: guix/scripts/publish.scm:1020 guix/scripts/edit.scm:87
+#: guix/scripts/describe.scm:258 guix/scripts/processes.scm:230
 #, scheme-format
 msgid "~A: unrecognized option~%"
 msgstr "~A: opção não reconhecida~%"
 
-#: guix/scripts.scm:179
+#: guix/scripts.scm:172
 #, scheme-format
 msgid "Your Guix installation is ~a day old.\n"
 msgid_plural "Your Guix installation is ~a days old.\n"
 msgstr[0] "Sua instalação do Guix tem ~a dia.\n"
 msgstr[1] "Sua instalação do Guix tem ~a dias.\n"
 
-#: guix/scripts.scm:184
+#: guix/scripts.scm:178
 #, scheme-format
 msgid ""
 "Consider running 'guix pull' followed by\n"
@@ -304,22 +1127,53 @@ msgstr ""
 "Considere executar \"guix pull\" seguido de\n"
 "\"~a\" para obter pacotes atualizados e atualizações de segurança.\n"
 
-#: guix/scripts/build.scm:81
+#: guix/scripts.scm:202
+#, scheme-format
+msgid "only ~,1f% of free space available on ~a~%"
+msgstr "apenas ~,1f% of de espaço livre disponível ~a~%"
+
+#: guix/scripts.scm:204
+msgid ""
+"Consider deleting old profile\n"
+"generations and collecting garbage, along these lines:\n"
+"\n"
+"@example\n"
+"guix gc --delete-generations=1m\n"
+"@end example\n"
+msgstr ""
+"Considere excluir gerações antigas de perfil\n"
+"e realizar a coleta de lixo, junto com essas linhas:\n"
+"\n"
+"@example\n"
+"guix gc --delete-generations=1m\n"
+"@end example\n"
+
+#: guix/scripts/build.scm:86
 #, scheme-format
 msgid "cannot access build log at '~a':~%"
 msgstr "não foi possível acessar o log de compilação em \"~a\"~%"
 
-#: guix/scripts/build.scm:135
+#: guix/scripts/build.scm:140
 #, scheme-format
 msgid "failed to create GC root `~a': ~a~%"
 msgstr "falha ao criar raiz de GC \"~a\": ~a~%"
 
-#: guix/scripts/build.scm:237
+#: guix/scripts/build.scm:245 guix/scripts/build.scm:310
 #, scheme-format
 msgid "invalid replacement specification: ~s~%"
 msgstr "especificação de substituição inválida: ~s~%"
 
-#: guix/scripts/build.scm:294
+#: guix/scripts/build.scm:292
+#, scheme-format
+msgid "the source of ~a is not a Git reference~%"
+msgstr "o fonte de ~a não é uma referência Git~%"
+
+#: guix/scripts/build.scm:380
+#, scheme-format
+msgid "~a: invalid Git URL replacement specification~%"
+msgstr "~a: especificação de substituição de URL Git inválida~%"
+
+#: guix/scripts/build.scm:425
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
@@ -329,7 +1183,7 @@ msgstr ""
 "      --with-source=FONTE\n"
 "                         usa FONTE ao compilar o pacote correspondente"
 
-#: guix/scripts/build.scm:297
+#: guix/scripts/build.scm:428
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
@@ -339,7 +1193,7 @@ msgstr ""
 "      --with-input=PACOTE=SUBSTITUIÇÃO\n"
 "                         substitui a dependência PACOTE por SUBSTITUIÇÃO"
 
-#: guix/scripts/build.scm:300
+#: guix/scripts/build.scm:431
 msgid ""
 "\n"
 "      --with-graft=PACKAGE=REPLACEMENT\n"
@@ -349,12 +1203,44 @@ msgstr ""
 "      --with-graft=PACOTE=SUBSTITUIÇÃO\n"
 "                         insere SUBSTITUIÇÃO em pacotes referindo-se a PACOTE"
 
-#: guix/scripts/build.scm:325
+#: guix/scripts/build.scm:434
+msgid ""
+"\n"
+"      --with-branch=PACKAGE=BRANCH\n"
+"                         build PACKAGE from the latest commit of BRANCH"
+msgstr ""
+"\n"
+"      --with-branch=PACOTE=RAMO\n"
+"                         compila PACOTE do último commit de BRANCH"
+
+#: guix/scripts/build.scm:437
+msgid ""
+"\n"
+"      --with-commit=PACKAGE=COMMIT\n"
+"                         build PACKAGE from COMMIT"
+msgstr ""
+"\n"
+"      --with-commit=PACOTE=COMMIT\n"
+"                         compila PACOTE do COMMIT"
+
+#: guix/scripts/build.scm:440
+msgid ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         build PACKAGE from the repository at URL"
+msgstr ""
+"\n"
+"      --with-git-url=PACKAGE=URL\n"
+"                         compila PACOTE de repositório na URL"
+
+#: guix/scripts/build.scm:471
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
 msgstr "a transformação \"~a\" não obteve efeito em ~a~%"
 
-#: guix/scripts/build.scm:343
+#: guix/scripts/build.scm:489 guix/scripts/search.scm:41
+#: guix/scripts/show.scm:41 guix/scripts/lint.scm:98 guix/scripts/edit.scm:48
+#: guix/scripts/size.scm:246 guix/scripts/graph.scm:509
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
@@ -363,7 +1249,7 @@ msgstr ""
 "  -L, --load-path=DIR    insere DIR no início do caminho de pesquisa do\n"
 "                         módulo do pacote"
 
-#: guix/scripts/build.scm:345
+#: guix/scripts/build.scm:491
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
@@ -371,7 +1257,7 @@ msgstr ""
 "\n"
 "  -K, --keep-failed      mantém a árvore de compilado de pacotes falhos"
 
-#: guix/scripts/build.scm:347
+#: guix/scripts/build.scm:493
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
@@ -379,7 +1265,7 @@ msgstr ""
 "\n"
 "  -k, --keep-going       continua mesmo se algumas das derivações falharem"
 
-#: guix/scripts/build.scm:349
+#: guix/scripts/build.scm:495
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -387,7 +1273,7 @@ msgstr ""
 "\n"
 "  -n, --dry-run          não compila as derivações"
 
-#: guix/scripts/build.scm:351
+#: guix/scripts/build.scm:497
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
@@ -395,7 +1281,7 @@ msgstr ""
 "\n"
 "      --fallback         volta para compilação quando o substituto falhar"
 
-#: guix/scripts/build.scm:353
+#: guix/scripts/build.scm:499
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
@@ -404,7 +1290,7 @@ msgstr ""
 "      --no-substitutes   compila, em vez de recorrer a substitutos\n"
 "                         pré-construídos"
 
-#: guix/scripts/build.scm:355 guix/scripts/size.scm:232
+#: guix/scripts/build.scm:501 guix/scripts/size.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -414,7 +1300,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         obtém substituto a partir das URLS se autorizadas"
 
-#: guix/scripts/build.scm:358
+#: guix/scripts/build.scm:504
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
@@ -422,16 +1308,15 @@ msgstr ""
 "\n"
 "      --no-grafts        não faz gráficos de pacotes"
 
-#: guix/scripts/build.scm:360
+#: guix/scripts/build.scm:506
 msgid ""
 "\n"
-"      --no-build-hook    do not attempt to offload builds via the build hook"
+"      --no-offload       do not attempt to offload builds"
 msgstr ""
 "\n"
-"      --no-build-hook    não tenta descarregar compilações via hook de\n"
-"                         compilação"
+"      --no-offload       não tenta descarregar compilações"
 
-#: guix/scripts/build.scm:362
+#: guix/scripts/build.scm:508
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
@@ -442,7 +1327,7 @@ msgstr ""
 "                         marca a compilação como falha após transcorridos\n"
 "                         SEGUNDOS de silêncio"
 
-#: guix/scripts/build.scm:365
+#: guix/scripts/build.scm:511
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
@@ -452,15 +1337,7 @@ msgstr ""
 "                         marca a compilação como falha após transcorridos\n"
 "                         SEGUNDOS de atividade"
 
-#: guix/scripts/build.scm:367
-msgid ""
-"\n"
-"      --verbosity=LEVEL  use the given verbosity LEVEL"
-msgstr ""
-"\n"
-"      --verbosity=NÍVEL  usa o NÍVEL de detalhamento dado"
-
-#: guix/scripts/build.scm:369
+#: guix/scripts/build.scm:513
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
@@ -469,7 +1346,7 @@ msgstr ""
 "      --rounds=N         compila N vezes de uma vez para detectar\n"
 "                         não determinismo"
 
-#: guix/scripts/build.scm:371
+#: guix/scripts/build.scm:515
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -477,7 +1354,7 @@ msgstr ""
 "\n"
 "  -c, --cores=N          permite uso de até N núcleos de CPU para compilação"
 
-#: guix/scripts/build.scm:373
+#: guix/scripts/build.scm:517
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
@@ -485,12 +1362,29 @@ msgstr ""
 "\n"
 "  -M, --max-jobs=N       permite no máximo N trabalhos de compilação"
 
-#: guix/scripts/build.scm:479 guix/scripts/build.scm:486
+#: guix/scripts/build.scm:519
+msgid ""
+"\n"
+"      --debug=LEVEL      produce debugging output at LEVEL"
+msgstr ""
+"\n"
+"      --debug=NÍVEL      produz uma saída de depuração no NÍVEL"
+
+#: guix/scripts/build.scm:536
+msgid "'--keep-failed' ignored since you are talking to a remote daemon\n"
+msgstr "\"--keep-failed\" ignorada já que você está falando com um daemon remoto\n"
+
+#: guix/scripts/build.scm:617
+#, scheme-format
+msgid "'--no-build-hook' is deprecated; use '--no-offload' instead~%"
+msgstr "\"--no-build-hook\" está descontinuado; use \"--no-offload\"~%"
+
+#: guix/scripts/build.scm:647 guix/scripts/build.scm:654
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
 msgstr "não é um número: argumento da opção \"~a\": ~a~%"
 
-#: guix/scripts/build.scm:505
+#: guix/scripts/build.scm:675
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -498,7 +1392,7 @@ msgstr ""
 "Uso: guix build [OPÇÃO]... PACOTE-OU-DERIVAÇÃO...\n"
 "Compila o PACOTE-OU-DERIVAÇÃO dado e returna seus caminhos de saída.\n"
 
-#: guix/scripts/build.scm:507
+#: guix/scripts/build.scm:677
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
@@ -506,7 +1400,7 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  compila o pacote ou derivação que EXPR corresponder"
 
-#: guix/scripts/build.scm:509
+#: guix/scripts/build.scm:679
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
@@ -516,7 +1410,7 @@ msgstr ""
 "  -f, --file=ARQUIVO     compila o pacote ou derivação que o código dentro\n"
 "                         de ARQUIVO avaliar"
 
-#: guix/scripts/build.scm:512
+#: guix/scripts/build.scm:682
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
@@ -524,7 +1418,7 @@ msgstr ""
 "\n"
 "  -S, --source           compila as derivações de fontes do pacote"
 
-#: guix/scripts/build.scm:514
+#: guix/scripts/build.scm:684
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
@@ -534,7 +1428,8 @@ msgstr ""
 "      --sources[=TIPO]   compila derivações de fonte; como opção, TIPO pode\n"
 "                         um entre \"package\", \"all\" (padrão) ou \"transitive\""
 
-#: guix/scripts/build.scm:517 guix/scripts/pack.scm:646
+#: guix/scripts/build.scm:687 guix/scripts/pull.scm:114
+#: guix/scripts/pack.scm:908
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -542,7 +1437,8 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMA   tenta compilar para SISTEMA (ex.: \"i686-linux\")"
 
-#: guix/scripts/build.scm:519 guix/scripts/pack.scm:648
+#: guix/scripts/build.scm:689 guix/scripts/system.scm:985
+#: guix/scripts/pack.scm:910
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -550,7 +1446,7 @@ msgstr ""
 "\n"
 "      --target=TRIO      compilação cruzada para TRIO (ex: \"armel-linux-gnu\")"
 
-#: guix/scripts/build.scm:521
+#: guix/scripts/build.scm:691
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
@@ -558,7 +1454,7 @@ msgstr ""
 "\n"
 "  -d, --derivations      retorna os caminhos de derivação dos pacotes dados"
 
-#: guix/scripts/build.scm:523
+#: guix/scripts/build.scm:693
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
@@ -567,7 +1463,7 @@ msgstr ""
 "      --check            recompila itens para verificar questões de\n"
 "                         não determinismo"
 
-#: guix/scripts/build.scm:525
+#: guix/scripts/build.scm:695
 msgid ""
 "\n"
 "      --repair           repair the specified items"
@@ -575,7 +1471,7 @@ msgstr ""
 "\n"
 "      --repair           conserta os itens especificados"
 
-#: guix/scripts/build.scm:527
+#: guix/scripts/build.scm:697 guix/scripts/pack.scm:928
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
@@ -585,7 +1481,19 @@ msgstr ""
 "  -r, --root=ARQUIVO     faz do ARQUIVO um link simbólico para o resultado\n"
 "                          e o registra, como um coletor de lixo"
 
-#: guix/scripts/build.scm:530
+#: guix/scripts/build.scm:700 guix/scripts/package.scm:371
+#: guix/scripts/install.scm:36 guix/scripts/remove.scm:36
+#: guix/scripts/upgrade.scm:36 guix/scripts/pull.scm:112
+#: guix/scripts/system.scm:987 guix/scripts/copy.scm:120
+#: guix/scripts/pack.scm:933 guix/scripts/deploy.scm:56
+msgid ""
+"\n"
+"  -v, --verbosity=LEVEL  use the given verbosity LEVEL"
+msgstr ""
+"\n"
+"  -v, --verbosity=NÍVEL  usa o NÍVEL de detalhamento dado"
+
+#: guix/scripts/build.scm:702
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
@@ -593,7 +1501,7 @@ msgstr ""
 "\n"
 "  -q, --quiet            não mostra o log de compilação"
 
-#: guix/scripts/build.scm:532
+#: guix/scripts/build.scm:704
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
@@ -602,17 +1510,20 @@ msgstr ""
 "      --log-file         retorna o os nomes de arquivos de log para as\n"
 "                         derivações fornecidas"
 
-#: guix/scripts/build.scm:539 guix/scripts/download.scm:83
-#: guix/scripts/package.scm:395 guix/scripts/gc.scm:76
-#: guix/scripts/hash.scm:59 guix/scripts/import.scm:92
+#: guix/scripts/build.scm:711 guix/scripts/download.scm:98
+#: guix/scripts/package.scm:389 guix/scripts/install.scm:43
+#: guix/scripts/remove.scm:41 guix/scripts/upgrade.scm:43
+#: guix/scripts/search.scm:36 guix/scripts/show.scm:36 guix/scripts/gc.scm:88
+#: guix/scripts/hash.scm:60 guix/scripts/import.scm:94
 #: guix/scripts/import/cran.scm:47 guix/scripts/pull.scm:120
-#: guix/scripts/substitute.scm: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:661
-#: guix/scripts/weather.scm:258 guix/scripts/container.scm:33
-#: guix/scripts/container/exec.scm:43
+#: guix/scripts/substitute.scm:862 guix/scripts/system.scm:990
+#: guix/scripts/lint.scm:101 guix/scripts/publish.scm:98
+#: guix/scripts/edit.scm:51 guix/scripts/size.scm:249
+#: guix/scripts/graph.scm:514 guix/scripts/challenge.scm:423
+#: guix/scripts/copy.scm:125 guix/scripts/pack.scm:938
+#: guix/scripts/weather.scm:273 guix/scripts/describe.scm:76
+#: guix/scripts/processes.scm:214 guix/scripts/deploy.scm:51
+#: guix/scripts/container.scm:34 guix/scripts/container/exec.scm:43
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -620,17 +1531,20 @@ msgstr ""
 "\n"
 "  -h, --help             exibe esta ajuda e sai"
 
-#: guix/scripts/build.scm:541 guix/scripts/download.scm:85
-#: 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: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:663
-#: guix/scripts/weather.scm:260 guix/scripts/container.scm:35
-#: guix/scripts/container/exec.scm:45
+#: guix/scripts/build.scm:713 guix/scripts/download.scm:100
+#: guix/scripts/package.scm:391 guix/scripts/install.scm:45
+#: guix/scripts/remove.scm:43 guix/scripts/upgrade.scm:45
+#: guix/scripts/search.scm:38 guix/scripts/show.scm:38 guix/scripts/gc.scm:90
+#: guix/scripts/hash.scm:62 guix/scripts/import.scm:96
+#: guix/scripts/import/cran.scm:51 guix/scripts/pull.scm:122
+#: guix/scripts/substitute.scm:864 guix/scripts/system.scm:992
+#: guix/scripts/lint.scm:105 guix/scripts/publish.scm:100
+#: guix/scripts/edit.scm:53 guix/scripts/size.scm:251
+#: guix/scripts/graph.scm:516 guix/scripts/challenge.scm:425
+#: guix/scripts/copy.scm:127 guix/scripts/pack.scm:940
+#: guix/scripts/weather.scm:275 guix/scripts/describe.scm:78
+#: guix/scripts/processes.scm:216 guix/scripts/deploy.scm:53
+#: guix/scripts/container.scm:36 guix/scripts/container/exec.scm:45
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
@@ -638,7 +1552,7 @@ msgstr ""
 "\n"
 "  -V, --version          exibe informações da versão e sai"
 
-#: guix/scripts/build.scm:568
+#: guix/scripts/build.scm:740
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
@@ -647,27 +1561,370 @@ msgstr ""
 "argumento inválido: argumento da opção \"~a\": ~a, ~\n"
 "deve ser um entre \"package\", \"all\" ou \"transitive\"~%"
 
-#: guix/scripts/build.scm:621
+#: guix/scripts/build.scm:798
 #, scheme-format
 msgid "~s: not something we can build~%"
 msgstr "~s: não é algo que podemos compilar~%"
 
-#: guix/scripts/build.scm:679
+#: guix/scripts/build.scm:875
 #, scheme-format
-msgid "~a: warning: package '~a' has no source~%"
-msgstr "~a: aviso: pacote \"~a\" não possui fontes~%"
+msgid "package '~a' has no source~%"
+msgstr "pacote \"~a\" não possui fontes~%"
 
-#: guix/scripts/build.scm:713
+#: guix/scripts/build.scm:921
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "nenhum log de compilação para \"~a\"~%"
 
-#: guix/discovery.scm:90
+#: guix/discovery.scm:96
 #, scheme-format
 msgid "cannot access `~a': ~a~%"
 msgstr "não foi possível acessar \"~a\": ~a~%"
 
-#: guix/scripts/download.scm:69
+#: guix/lint.scm:177
+msgid "description should not be empty"
+msgstr "a descrição deve não estar vazia"
+
+#: guix/lint.scm:188
+msgid "Texinfo markup in description is invalid"
+msgstr "a marcação Texinfo na descrição é inválida"
+
+#: guix/lint.scm:198
+#, scheme-format
+msgid ""
+"description should not contain ~\n"
+"trademark sign '~a' at ~d"
+msgstr ""
+"a descrição não deve conter ~\n"
+"sinal de marca registrada \"~a\" em ~d"
+
+#. TRANSLATORS: '@code' is Texinfo markup and must be kept
+#. as is.
+#: guix/lint.scm:211
+msgid "use @code or similar ornament instead of quotes"
+msgstr "use @code ou ornamento similar em vez de aspas"
+
+#: guix/lint.scm:223
+msgid "description should start with an upper-case letter or digit"
+msgstr "a descrição deve iniciar com uma letra maiúscula ou dígito"
+
+#: guix/lint.scm:241
+#, scheme-format
+msgid ""
+"sentences in description should be followed ~\n"
+"by two spaces; possible infraction~p at ~{~a~^, ~}"
+msgstr ""
+"sentenças nas descrição devem ser seguidas ~\n"
+"por dois espaços; possível infração~p em ~{~a~^, ~}"
+
+#: guix/lint.scm:262
+#, scheme-format
+msgid "invalid description: ~s"
+msgstr "a descrição inválida: ~s"
+
+#: guix/lint.scm:329
+#, scheme-format
+msgid "'~a' should probably be a native input"
+msgstr "\"~a\" provavelmente é uma entrada nativa"
+
+#: guix/lint.scm:344
+#, scheme-format
+msgid "'~a' should probably not be an input at all"
+msgstr "\"~a\" provavelmente deve não ser uma entrada"
+
+#: guix/lint.scm:365
+msgid "no period allowed at the end of the synopsis"
+msgstr "nenhum ponto permitido ao final da sinopse"
+
+#: guix/lint.scm:379
+msgid "no article allowed at the beginning of the synopsis"
+msgstr "nenhum artigo permitido no início da sinopse"
+
+#: guix/lint.scm:388
+msgid "synopsis should be less than 80 characters long"
+msgstr "a sinopse deve ser menor que 80 caracteres"
+
+#: guix/lint.scm:397
+msgid "synopsis should start with an upper-case letter or digit"
+msgstr "a sinopse deve iniciar com uma letra maiúscula ou dígito"
+
+#: guix/lint.scm:405
+msgid "synopsis should not start with the package name"
+msgstr "a sinopse deve não iniciar com o nome do pacote"
+
+#: guix/lint.scm:419
+msgid "Texinfo markup in synopsis is invalid"
+msgstr "Marcação Texinfo na sinopse é inválida"
+
+#: guix/lint.scm:434
+msgid "synopsis should not be empty"
+msgstr "a sinopse deve não estar vazia"
+
+#: guix/lint.scm:444
+#, scheme-format
+msgid "invalid synopsis: ~s"
+msgstr "sinopse inválida: ~s"
+
+#: guix/lint.scm:562
+#, scheme-format
+msgid "URI ~a returned suspiciously small file (~a bytes)"
+msgstr "a URI ~a retornou um arquivo suspeitosamente pequeno (~a bytes)"
+
+#: guix/lint.scm:571
+#, scheme-format
+msgid "permanent redirect from ~a to ~a"
+msgstr "redirecionamento permanente de ~a para ~a"
+
+#: guix/lint.scm:577
+#, scheme-format
+msgid "invalid permanent redirect from ~a"
+msgstr "redirecionamento permanente inválido de ~a"
+
+#: guix/lint.scm:583 guix/lint.scm:593
+#, scheme-format
+msgid "URI ~a not reachable: ~a (~s)"
+msgstr "a URI ~a não é alcançável: ~a (~s)"
+
+#: guix/lint.scm:599
+#, scheme-format
+msgid "URI ~a domain not found: ~a"
+msgstr "o domínio da URI ~a não foi localizado: ~a"
+
+#: guix/lint.scm:605
+#, scheme-format
+msgid "URI ~a unreachable: ~a"
+msgstr "URI ~a inalcançável: ~a"
+
+#: guix/lint.scm:613
+#, scheme-format
+msgid "TLS certificate error: ~a"
+msgstr "erro de certificado TLS: ~a"
+
+#: guix/lint.scm:640
+msgid "invalid value for home page"
+msgstr "valor inválido para página inicial"
+
+#: guix/lint.scm:645
+#, scheme-format
+msgid "invalid home page URL: ~s"
+msgstr "URL de página inicial inválida: ~s"
+
+#: guix/lint.scm:678
+msgid "file names of patches should start with the package name"
+msgstr "nomes de arquivos de patches devem iniciar com o nome do pacote"
+
+#: guix/lint.scm:694
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr "~a: o nome de arquivo é longo demais"
+
+#: guix/lint.scm:736
+#, scheme-format
+msgid "proposed synopsis: ~s~%"
+msgstr "sinopse proposta: ~s~%"
+
+#: guix/lint.scm:750
+#, scheme-format
+msgid "proposed description:~%     \"~a\"~%"
+msgstr "descrição proposta:~%     \"~a\"~%"
+
+#: guix/lint.scm:797
+msgid "all the source URIs are unreachable:"
+msgstr "todas as URIs fontes estão inalcançáveis:"
+
+#: guix/lint.scm:821
+msgid "the source file name should contain the package name"
+msgstr "o nome de arquivo fonte deve conter o nome do pacote"
+
+#: guix/lint.scm:833
+msgid "the source URI should not be an autogenerated tarball"
+msgstr "a URI fonte não deve ser um tarball gerado automaticamente"
+
+#: guix/lint.scm:857
+#, scheme-format
+msgid "URL should be 'mirror://~a/~a'"
+msgstr "a URL deve ser \"mirror://~a/~a\""
+
+#: guix/lint.scm:902
+#, scheme-format
+msgid "URL should be '~a'"
+msgstr "a URL deve ser \"~a\""
+
+#: guix/lint.scm:924 guix/lint.scm:935
+#, scheme-format
+msgid "failed to create ~a derivation: ~a"
+msgstr "falha ao criar a derivação de ~a: ~a"
+
+#: guix/lint.scm:929 guix/lint.scm:952
+#, scheme-format
+msgid "failed to create ~a derivation: ~s"
+msgstr "falha ao criar a derivação de ~a: ~s"
+
+#: guix/lint.scm:966
+msgid "invalid license field"
+msgstr "campo de licença inválido"
+
+#: guix/lint.scm:973
+#, scheme-format
+msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgstr "~a: erro HTTP GET para ~a: ~a (~s)~%"
+
+#: guix/lint.scm:983
+#, scheme-format
+msgid "~a: host lookup failure: ~a~%"
+msgstr "~a: falha ao procurar o host: ~a~%"
+
+#: guix/lint.scm:988
+#, scheme-format
+msgid "~a: TLS certificate error: ~a"
+msgstr "~a: erro de certificado TLS: ~a"
+
+#: guix/lint.scm:999 guix/ui.scm:792
+#, scheme-format
+msgid "~a: ~a~%"
+msgstr "~a: ~a~%"
+
+#: guix/lint.scm:1013
+msgid "while retrieving CVE vulnerabilities"
+msgstr "ao obter vulnerabilidades CVE"
+
+#: guix/lint.scm:1056
+#, scheme-format
+msgid "probably vulnerable to ~a"
+msgstr "provavelmente vulnerável a ~a"
+
+#: guix/lint.scm:1063
+#, scheme-format
+msgid "while retrieving upstream info for '~a'"
+msgstr "ao obter informações do upstream para \"~a\""
+
+#: guix/lint.scm:1072
+#, scheme-format
+msgid "can be upgraded to ~a"
+msgstr "pode ser atualizado para ~a"
+
+#: guix/lint.scm:1090
+msgid "Software Heritage rate limit reached; try again later"
+msgstr "Limite de taxa de Software Heritage atingido; tente novamente mais tarde"
+
+#: guix/lint.scm:1094
+#, scheme-format
+msgid "'~a' returned ~a"
+msgstr "\"~a\" retornou ~a"
+
+#. TRANSLATORS: "Software Heritage" is a proper noun
+#. that must remain untranslated.  See
+#. <https://www.softwareheritage.org>.
+#: guix/lint.scm:1133
+msgid "scheduled Software Heritage archival"
+msgstr "arquivamento Software Heritage agendado"
+
+#: guix/lint.scm:1139
+msgid "archival rate limit exceeded; try again later"
+msgstr "taxa limite de arquivamento excedida; tente novamente mais tarde"
+
+#: guix/lint.scm:1151
+msgid "source not archived on Software Heritage"
+msgstr "fonte não arquivada no Software Heritage"
+
+#: guix/lint.scm:1164
+msgid "while connecting to Software Heritage"
+msgstr "enquanto conectava ao Software Heritage"
+
+#: guix/lint.scm:1179
+#, scheme-format
+msgid "tabulation on line ~a, column ~a"
+msgstr "tabulação na linha ~a, coluna ~a"
+
+#: guix/lint.scm:1191
+#, scheme-format
+msgid "trailing white space on line ~a"
+msgstr "espaço ao final da linha ~a"
+
+#: guix/lint.scm:1205
+#, scheme-format
+msgid "line ~a is way too long (~a characters)"
+msgstr "a linha ~a está grande demais (~a caracteres)"
+
+#: guix/lint.scm:1219
+msgid "parentheses feel lonely, move to the previous or next line"
+msgstr "parênteses se sentem sozinhos, mova para a linha anterior ou a seguinte"
+
+#: guix/lint.scm:1300
+msgid "Validate package descriptions"
+msgstr "Valida descrições dos pacotes"
+
+#: guix/lint.scm:1304
+msgid "Identify inputs that should be native inputs"
+msgstr "Identifica entradas que devem ser nativas"
+
+#: guix/lint.scm:1308
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr "Identifica entradas que podem ser entradas"
+
+#. TRANSLATORS: <license> is the name of a data type and must not be
+#. translated.
+#: guix/lint.scm:1314
+msgid "Make sure the 'license' field is a <license> or a list thereof"
+msgstr "Certifica que o campo \"license\" é um <license> ou uma lista disto"
+
+#: guix/lint.scm:1319
+msgid "Suggest 'mirror://' URLs"
+msgstr "Sugere URLs \"mirror://\""
+
+#: guix/lint.scm:1323
+msgid "Validate file names of sources"
+msgstr "Valida nomes de arquivos dos fontes"
+
+#: guix/lint.scm:1327
+msgid "Check for autogenerated tarballs"
+msgstr "Verifica para tarballs gerados automaticamente"
+
+#: guix/lint.scm:1331
+msgid "Report failure to compile a package to a derivation"
+msgstr "Relata falha ao compilar um pacote para uma derivação"
+
+#: guix/lint.scm:1335
+msgid "Validate file names and availability of patches"
+msgstr "Valida nomes de arquivos e disponibilidade de patches"
+
+#: guix/lint.scm:1339
+msgid "Look for formatting issues in the source"
+msgstr "Procura por problemas de formatação no fonte"
+
+#: guix/lint.scm:1346
+msgid "Validate package synopses"
+msgstr "Valida sinopses do pacotes"
+
+#: guix/lint.scm:1350
+msgid "Validate synopsis & description of GNU packages"
+msgstr "Valida sinopse & descrição de pacotes GNU"
+
+#: guix/lint.scm:1354
+msgid "Validate home-page URLs"
+msgstr "Valida URLs de site"
+
+#: guix/lint.scm:1358
+msgid "Validate source URLs"
+msgstr "Valida URLs fonte"
+
+#: guix/lint.scm:1362
+msgid "Suggest GitHub URLs"
+msgstr "Sugere URLs do GitHub"
+
+#: guix/lint.scm:1366
+msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
+msgstr "Verifica o banco de dados de Vulnerabilidades e Exposições Comuns (CVE)"
+
+#: guix/lint.scm:1371
+msgid "Check the package for new upstream releases"
+msgstr "Verifica o pacote por novos lançamentos do upstream"
+
+#: guix/lint.scm:1375
+msgid "Ensure source code archival on Software Heritage"
+msgstr "Força arquivamento do código-fonte no Software Heritage"
+
+#: guix/scripts/download.scm:84
 msgid ""
 "Usage: guix download [OPTION] URL\n"
 "Download the file at URL to the store or to the given file, and print its\n"
@@ -683,7 +1940,7 @@ msgstr ""
 "Suporte a formatos: \"nix-base32\" (padrão), \"base32\" e \"base16\"\n"
 "(\"hex\" e \"hexadecimal\" também podem ser usados).\n"
 
-#: guix/scripts/download.scm:75 guix/scripts/hash.scm:54
+#: guix/scripts/download.scm:90 guix/scripts/hash.scm:55
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -691,7 +1948,7 @@ msgstr ""
 "\n"
 "  -f, --format=FMT       escreve o hash no formato FMT dado"
 
-#: guix/scripts/download.scm:77
+#: guix/scripts/download.scm:92
 msgid ""
 "\n"
 "      --no-check-certificate\n"
@@ -701,7 +1958,7 @@ msgstr ""
 "      --no-check-certificate\n"
 "                         não valida o certificado de servidores HTTPS "
 
-#: guix/scripts/download.scm:80
+#: guix/scripts/download.scm:95
 msgid ""
 "\n"
 "  -o, --output=FILE      download to FILE"
@@ -709,97 +1966,84 @@ msgstr ""
 "\n"
 "  -o, --output=ARQUIVO   baixa para ARQUIVO"
 
-#: guix/scripts/download.scm:103 guix/scripts/hash.scm:82
+#: guix/scripts/download.scm:118 guix/scripts/hash.scm:83
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "sem suporte ao formato de hash: ~a~%"
 
-#: guix/scripts/download.scm:138 guix/scripts/package.scm:884
-#: guix/scripts/publish.scm:883
+#: guix/scripts/download.scm:153 guix/scripts/package.scm:936
+#: guix/scripts/upgrade.scm:79 guix/scripts/publish.scm:1022
 #, scheme-format
 msgid "~A: extraneous argument~%"
 msgstr "~A: argumento estranho~%"
 
-#: guix/scripts/download.scm:146
+#: guix/scripts/download.scm:161
 #, scheme-format
 msgid "no download URI was specified~%"
 msgstr "nenhuma URI de download foi especificada~%"
 
-#: guix/scripts/download.scm:151
+#: guix/scripts/download.scm:166
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: falha ao analisar URI~%"
 
-#: guix/scripts/download.scm:161
+#: guix/scripts/download.scm:176
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: falha no download~%"
 
-#: guix/scripts/package.scm:72
-#, scheme-format
-msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
-msgstr "Tente \"info '(guix) Invoking guix package'\" para mais informações.~%"
-
-#: guix/scripts/package.scm:94
-#, scheme-format
-msgid "error: while creating directory `~a': ~a~%"
-msgstr "erro: ao criar diretório \"~a\": ~a~%"
-
-#: guix/scripts/package.scm:98
-#, scheme-format
-msgid "Please create the `~a' directory, with you as the owner.~%"
-msgstr "Por favor, crie o diretório \"~a\", com você sendo o proprietário.~%"
-
-#: guix/scripts/package.scm:105
-#, scheme-format
-msgid "error: directory `~a' is not owned by you~%"
-msgstr "erro: diretório \"~a\" não tem você como proprietário~%"
-
-#: guix/scripts/package.scm:108
-#, scheme-format
-msgid "Please change the owner of `~a' to user ~s.~%"
-msgstr "Por favor, altere o proprietário d \"~a\" para o usuário ~s.~%"
-
-#: guix/scripts/package.scm:143
+#: guix/scripts/package.scm:120
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
 msgstr "não será removida a geração ~a, que é o atual~%"
 
 # geração, criação?
-#: guix/scripts/package.scm:150
+#: guix/scripts/package.scm:127
 #, scheme-format
 msgid "no matching generation~%"
 msgstr "nenhuma geração correspondente~%"
 
-#: guix/scripts/package.scm:153 guix/scripts/package.scm:690
-#: guix/scripts/system.scm:593
-#, scheme-format
-msgid "invalid syntax: ~a~%"
-msgstr "sintaxe inválida: ~a~%"
-
-#: guix/scripts/package.scm:182
+#: guix/scripts/package.scm:154
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "nada para ser feito~%"
 
-#: guix/scripts/package.scm:196
+#: guix/scripts/package.scm:168
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a pacote no perfil~%"
 msgstr[1] "~a pacotes no perfil~%"
 
-#: guix/scripts/package.scm:280
+#: guix/scripts/package.scm:254
 #, scheme-format
 msgid "package '~a' no longer exists~%"
 msgstr "o pacote \"~a\" não existe mais~%"
 
-#: guix/scripts/package.scm:318
+#: guix/scripts/package.scm:298
 #, scheme-format
-msgid "The following environment variable definitions may be needed:~%"
-msgstr "As seguintes definições de variável de ambiente podem ser necessárias:~%"
+msgid ""
+"Consider setting the necessary environment\n"
+"variables by running:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Alternately, see @command{guix package --search-paths -p ~s}."
+msgstr ""
+"Considere definir as variáveis de ambiente\n"
+"necessárias executando:\n"
+"\n"
+"@example\n"
+"GUIX_PROFILE=\"~a\"\n"
+". \"$GUIX_PROFILE/etc/profile\"\n"
+"@end example\n"
+"\n"
+"Alternativamente, consulte @command{guix package --search-paths -p ~s}."
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:326
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
@@ -807,7 +2051,7 @@ msgstr ""
 "Uso: guix package [OPÇÃO]...\n"
 "Instala, remove ou atualiza pacotes em uma única transação.\n"
 
-#: guix/scripts/package.scm:336
+#: guix/scripts/package.scm:328
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
@@ -817,7 +2061,7 @@ msgstr ""
 "  -i, --install PACOTE ...\n"
 "                         instala PACOTEs"
 
-#: guix/scripts/package.scm:339
+#: guix/scripts/package.scm:331
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
@@ -827,7 +2071,7 @@ msgstr ""
 "  -e, --install-from-expression=EXP\n"
 "                         instala o pacote que EXPR corresponder"
 
-#: guix/scripts/package.scm:342
+#: guix/scripts/package.scm:334
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
@@ -839,7 +2083,7 @@ msgstr ""
 "                         instala o pacote cujo código dentro do ARQUIVO\n"
 "                         corresponder"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:338
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
@@ -849,7 +2093,7 @@ msgstr ""
 "  -r, --remove PACOTE ...\n"
 "                         remove PACOTEs"
 
-#: guix/scripts/package.scm:349
+#: guix/scripts/package.scm:341
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -858,7 +2102,7 @@ msgstr ""
 "  -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados correspondendo\n"
 "                         à REGEXP"
 
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:343
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
@@ -868,7 +2112,7 @@ msgstr ""
 "  -m, --manifest=ARQUIVO cria a geração de um novo perfil com o manifesto\n"
 "                         do ARQUIVO"
 
-#: guix/scripts/package.scm:354
+#: guix/scripts/package.scm:346
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
@@ -876,7 +2120,7 @@ msgstr ""
 "\n"
 "      --do-not-upgrade[=REGEXP] não atualiza pacotes correspondente a REGEXP"
 
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:348 guix/scripts/pull.scm:102
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
@@ -884,7 +2128,7 @@ msgstr ""
 "\n"
 "      --roll-back        reverte para a geração anterior"
 
-#: guix/scripts/package.scm:358
+#: guix/scripts/package.scm:350
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -894,7 +2138,7 @@ msgstr ""
 "      --search-paths[=TIPO]\n"
 "                         exibe definições necessárias de variável de ambiente"
 
-#: guix/scripts/package.scm:361 guix/scripts/pull.scm:113
+#: guix/scripts/package.scm:353 guix/scripts/pull.scm:99
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
@@ -904,7 +2148,7 @@ msgstr ""
 "  -l, --list-generations[=PADRÃO]\n"
 "                         lista criações correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:364
+#: guix/scripts/package.scm:356 guix/scripts/pull.scm:104
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
@@ -914,7 +2158,7 @@ msgstr ""
 "  -d, --delete-generations[=PADRÃO]\n"
 "                         exclui gerações correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:367
+#: guix/scripts/package.scm:359 guix/scripts/pull.scm:107
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
@@ -924,7 +2168,8 @@ msgstr ""
 "  -S, --switch-generations=PADRÃO\n"
 "                         alterna para a geração correspondendo a PADRÃO"
 
-#: guix/scripts/package.scm:370
+#: guix/scripts/package.scm:362 guix/scripts/install.scm:33
+#: guix/scripts/remove.scm:33 guix/scripts/upgrade.scm:34
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
@@ -932,31 +2177,31 @@ msgstr ""
 "\n"
 "  -p, --profile=PERFIL   usa PERFIL em vez do perfil padrão do usuário"
 
-#: guix/scripts/package.scm:373
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
-"      --allow-collisions do not treat collisions in the profile as an error"
+"      --list-profiles    list the user's profiles"
 msgstr ""
 "\n"
-"      --allow-collisions não trata colisões no perfil como um erro"
+"      --list-profiles    lista os perfis do usuário"
 
-#: guix/scripts/package.scm:375
+#: guix/scripts/package.scm:367
 msgid ""
 "\n"
-"      --bootstrap        use the bootstrap Guile to build the profile"
+"      --allow-collisions do not treat collisions in the profile as an error"
 msgstr ""
 "\n"
-"      --bootstrap        usa a inicialização do Guile para compilar o perfil"
+"      --allow-collisions não trata colisões no perfil como um erro"
 
-#: guix/scripts/package.scm:377 guix/scripts/pull.scm:105
+#: guix/scripts/package.scm:369
 msgid ""
 "\n"
-"      --verbose          produce verbose output"
+"      --bootstrap        use the bootstrap Guile to build the profile"
 msgstr ""
 "\n"
-"      --verbose          produz uma saída mais detalhada"
+"      --bootstrap        usa a inicialização do Guile para compilar o perfil"
 
-#: guix/scripts/package.scm:380
+#: guix/scripts/package.scm:374
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
@@ -964,7 +2209,7 @@ msgstr ""
 "\n"
 "  -s, --search=REGEXP    pesquisa na sinopse e descrição usando REGEXP"
 
-#: guix/scripts/package.scm:382
+#: guix/scripts/package.scm:376
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
@@ -974,7 +2219,7 @@ msgstr ""
 "  -I, --list-installed[=REGEXP]\n"
 "                         lista pacotes instalados correspondentes a REGEXP"
 
-#: guix/scripts/package.scm:385
+#: guix/scripts/package.scm:379
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
@@ -984,7 +2229,7 @@ msgstr ""
 "  -A, --list-available[=REGEXP]\n"
 "                         lista pacotes disponíveis correspondentes a REGEXP"
 
-#: guix/scripts/package.scm:388
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -992,38 +2237,110 @@ msgstr ""
 "\n"
 "      --show=PACOTE      mostra detalhes sobre o PACOTE"
 
-#: guix/scripts/package.scm:440
+#: guix/scripts/package.scm:434
 #, scheme-format
 msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr "a regexp de atualização \"~a\" se parece com uma opção de linha de comando~%"
 
-#: guix/scripts/package.scm:443
+#: guix/scripts/package.scm:437
 #, scheme-format
 msgid "is this intended?~%"
 msgstr "isso é intencional?~%"
 
-#: guix/scripts/package.scm:488
+#: guix/scripts/package.scm:487
 #, scheme-format
 msgid "~a: unsupported kind of search path~%"
 msgstr "~a: sem suporte ao tipo de caminho de pesquisa~%"
 
+#: guix/scripts/package.scm:620
+#, scheme-format
+msgid "cannot install non-package object: ~s~%"
+msgstr "não é possível instalar o objeto não-pacote: ~s~%"
+
+#: guix/scripts/package.scm:792
+#, scheme-format
+msgid "~a~@[@~a~]: package not found~%"
+msgstr "~a~@[@~a~]: pacote não localizado~%"
+
 # geração, criação?
-#: guix/scripts/package.scm:789
+#: guix/scripts/package.scm:826 guix/scripts/pull.scm:693
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "não foi possível alternar para a geração \"~a\"~%"
 
-#: guix/scripts/package.scm:806
+#: guix/scripts/install.scm:30
+msgid ""
+"Usage: guix install [OPTION] PACKAGES...\n"
+"Install the given PACKAGES.\n"
+"This is an alias for 'guix package -i'.\n"
+msgstr ""
+"Uso: guix install [OPÇÃO] PACOTES…\n"
+"Instala os PACOTES dados.\n"
+"Esse é um apelido para \"guix package -i\".\n"
+
+#: guix/scripts/remove.scm:30
+msgid ""
+"Usage: guix remove [OPTION] PACKAGES...\n"
+"Remove the given PACKAGES.\n"
+"This is an alias for 'guix package -r'.\n"
+msgstr ""
+"Uso: guix remove [OPÇÃO] PACOTES…\n"
+"Remove os PACOTES dados.\n"
+"Esse é um apelido para \"guix package -r\".\n"
+
+#: guix/scripts/upgrade.scm:31
+msgid ""
+"Usage: guix upgrade [OPTION] [REGEXP]\n"
+"Upgrade packages that match REGEXP.\n"
+"This is an alias for 'guix package -u'.\n"
+msgstr ""
+"Uso: guix upgrade [OPÇÃO] [REGEXP]\n"
+"Atualiza pacotes que correspondam a REGEXP.\n"
+"Esse é um apelido para \"guix package -u\".\n"
+
+#: guix/scripts/search.scm:31
+msgid ""
+"Usage: guix search [OPTION] REGEXPS...\n"
+"Search for packages matching REGEXPS."
+msgstr ""
+"Uso: guix search [OPÇÃO] REGEXPS…\n"
+"Pesquisa pacotes correspondendo a REGEXPS."
+
+#: guix/scripts/search.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package -s'.\n"
+msgstr ""
+"\n"
+"Esse é um apelido para \"guix package -s\".\n"
+
+#: guix/scripts/search.scm:74
 #, scheme-format
-msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr "instalaria novo manifesto a partir de \"~a\" com entradas ~d~%"
+msgid "missing arguments: no regular expressions to search for~%"
+msgstr "faltando argumentos: sem expressões regulares para procurar por~%"
 
-#: guix/scripts/package.scm:808
+#: guix/scripts/show.scm:31
+msgid ""
+"Usage: guix show [OPTION] PACKAGE...\n"
+"Show details about PACKAGE."
+msgstr ""
+"Uso: guix show [OPÇÃO] PACOTE...\n"
+"Mostra detalhes sobre o PACOTE."
+
+#: guix/scripts/show.scm:33
+msgid ""
+"\n"
+"This is an alias for 'guix package --show='.\n"
+msgstr ""
+"\n"
+"Esse é um apelido para \"guix package --show=\".\n"
+
+#: guix/scripts/show.scm:74
 #, scheme-format
-msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr "instalando novo manifesto a partir de \"~a\" com entradas ~d~%"
+msgid "missing arguments: no package to show~%"
+msgstr "faltando argumentos: nenhum pacote para mostrar~%"
 
-#: guix/scripts/gc.scm:42
+#: guix/scripts/gc.scm:47
 msgid ""
 "Usage: guix gc [OPTION]... PATHS...\n"
 "Invoke the garbage collector.\n"
@@ -1031,7 +2348,7 @@ msgstr ""
 "Uso: guix gc [OPÇÃO]... CAMINHOS...\n"
 "Chama o coletor de lixo.\n"
 
-#: guix/scripts/gc.scm:44
+#: guix/scripts/gc.scm:49
 msgid ""
 "\n"
 "  -C, --collect-garbage[=MIN]\n"
@@ -1041,23 +2358,50 @@ msgstr ""
 "  -C, --collect-garbage[=MÍN]\n"
 "                         coleta pelo menos MÍN bytes de lixo"
 
-#: guix/scripts/gc.scm:47
+#: guix/scripts/gc.scm:52
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
 msgstr ""
 "\n"
-"  -F, --free-space=LIVRE tenta alcançar LIVRE espaço disponível no                         armazenamento"
+"  -F, --free-space=LIVRE tenta alcançar LIVRE espaço disponível no\n"
+"                         armazenamento"
 
-#: guix/scripts/gc.scm:49
+#: guix/scripts/gc.scm:54
 msgid ""
 "\n"
-"  -d, --delete           attempt to delete PATHS"
+"  -d, --delete-generations[=PATTERN]\n"
+"                         delete profile generations matching PATTERN"
 msgstr ""
 "\n"
-"  -d, --delete           tente excluir CAMINHOS"
+"  -d, --delete-generations[=PADRÃO]\n"
+"                         exclui gerações de perfil correspondendo a PADRÃO"
 
-#: guix/scripts/gc.scm:51
+#: guix/scripts/gc.scm:57
+msgid ""
+"\n"
+"  -D, --delete           attempt to delete PATHS"
+msgstr ""
+"\n"
+"  -D, --delete           tente excluir CAMINHOS"
+
+#: guix/scripts/gc.scm:59
+msgid ""
+"\n"
+"      --list-roots       list the user's garbage collector roots"
+msgstr ""
+"\n"
+"      --list-roots       lista as raízes do coletor de lixo do usuário"
+
+#: guix/scripts/gc.scm:61
+msgid ""
+"\n"
+"      --list-busy        list store items used by running processes"
+msgstr ""
+"\n"
+"      --list-busy        lista itens de armazenamento usados por processos em execução"
+
+#: guix/scripts/gc.scm:63
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
@@ -1066,7 +2410,7 @@ msgstr ""
 "      --optimize         otimiza o armazenamento deduplicando arquivos iguais"
 
 # são "arquivos inalcançáveis", segundo 'info guix', sobre o 'gc'
-#: guix/scripts/gc.scm:53
+#: guix/scripts/gc.scm:65
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
@@ -1075,7 +2419,7 @@ msgstr ""
 "      --list-dead        lista caminhos mortos (inalcançáveis)"
 
 # são arquivos no armazenamento alcançáveis, segundo 'info guix', sobre o 'gc'
-#: guix/scripts/gc.scm:55
+#: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --list-live        list live paths"
@@ -1083,7 +2427,7 @@ msgstr ""
 "\n"
 "      --list-live        lista caminhos vivos (ativos)"
 
-#: guix/scripts/gc.scm:58
+#: guix/scripts/gc.scm:70
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
@@ -1091,7 +2435,7 @@ msgstr ""
 "\n"
 "      --references       lista as referências de CAMINHOS"
 
-#: guix/scripts/gc.scm:60
+#: guix/scripts/gc.scm:72
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
@@ -1099,7 +2443,7 @@ msgstr ""
 "\n"
 "  -R, --requisites       lista os requisitos de CAMINHOS"
 
-#: guix/scripts/gc.scm:62
+#: guix/scripts/gc.scm:74
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
@@ -1107,7 +2451,7 @@ msgstr ""
 "\n"
 "      --referrers        lista as referências de CAMINHOS"
 
-#: guix/scripts/gc.scm:64
+#: guix/scripts/gc.scm:76
 msgid ""
 "\n"
 "      --derivers         list the derivers of PATHS"
@@ -1115,7 +2459,7 @@ msgstr ""
 "\n"
 "      --derivers         lista os derivadores de CAMINHOS"
 
-#: guix/scripts/gc.scm:67
+#: guix/scripts/gc.scm:79
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
@@ -1128,7 +2472,7 @@ msgstr ""
 "                         \"repair\" e \"contents\""
 
 # são "arquivos inalcançáveis", segundo 'info guix', sobre o 'gc'
-#: guix/scripts/gc.scm:71
+#: guix/scripts/gc.scm:83
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
@@ -1136,7 +2480,7 @@ msgstr ""
 "\n"
 "      --list-failures    lista falhas de compilação em cache"
 
-#: guix/scripts/gc.scm:73
+#: guix/scripts/gc.scm:85
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
@@ -1144,34 +2488,44 @@ msgstr ""
 "\n"
 "      --clear-failures   remove CAMINHOS do conjunto de falhas em cache"
 
-#: guix/scripts/gc.scm:87
+#: guix/scripts/gc.scm:99
 #, scheme-format
 msgid "~a: invalid '--verify' option~%"
 msgstr "~a: opção \"--verify\" inválida~%"
 
-#: guix/scripts/gc.scm:117
+#: guix/scripts/gc.scm:142
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
 msgstr "quantidade inválida de armazenamento: ~a~%"
 
-#: guix/scripts/gc.scm:202
-msgid "already ~h bytes available on ~a, nothing to do~%"
-msgstr "~h bytes já disponíveis em ~a, nada para fazer~%"
+#: guix/scripts/gc.scm:156
+#, scheme-format
+msgid "'-d' as an alias for '--delete' is deprecated; use '-D'~%"
+msgstr "\"-d\" como um apelido para \"--delete\" está obsoleto; use \"-D\"~%"
+
+#: guix/scripts/gc.scm:163
+#, scheme-format
+msgid "~s does not denote a duration~%"
+msgstr "~s não denota uma duração~%"
+
+#: guix/scripts/gc.scm:249
+msgid "already ~h MiBs available on ~a, nothing to do~%"
+msgstr "~h MiBs já disponíveis em ~a, nada para fazer~%"
 
-#: guix/scripts/gc.scm:205
-msgid "freeing ~h bytes~%"
-msgstr "liberando ~h bytes~%"
+#: guix/scripts/gc.scm:252
+msgid "freeing ~h MiBs~%"
+msgstr "liberando ~h MiBs~%"
 
-#: guix/scripts/gc.scm:217
+#: guix/scripts/gc.scm:291
 #, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
 msgstr "argumentos estranhos: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240
-msgid "freed ~h bytes~%"
-msgstr "~h bytes liberados~%"
+#: guix/scripts/gc.scm:315 guix/scripts/gc.scm:318
+msgid "freed ~h MiBs~%"
+msgstr "~h MiBs liberados~%"
 
-#: guix/scripts/hash.scm:47
+#: guix/scripts/hash.scm:48
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
@@ -1185,7 +2539,7 @@ msgstr ""
 "Suporte a formatos: \"nix-base32\" (padrão), \"base32\" e \"base16\"\n"
 "(\"hex\" e \"hexadecimal\" também podem ser usados).\n"
 
-#: guix/scripts/hash.scm:52
+#: guix/scripts/hash.scm:53
 msgid ""
 "\n"
 "  -x, --exclude-vcs      exclude version control directories"
@@ -1193,7 +2547,7 @@ msgstr ""
 "\n"
 "  -x, --exclude-vcs      exclui diretórios de controle de versão"
 
-#: guix/scripts/hash.scm:56
+#: guix/scripts/hash.scm:57
 msgid ""
 "\n"
 "  -r, --recursive        compute the hash on FILE recursively"
@@ -1201,18 +2555,20 @@ msgstr ""
 "\n"
 "  -r, --recursive        computa o hash no AQUIVO recursivamente"
 
-#: guix/scripts/hash.scm:150 guix/ui.scm:365 guix/ui.scm:706 guix/ui.scm:759
+#: guix/scripts/hash.scm:151 guix/ui.scm:389 guix/ui.scm:414 guix/ui.scm:741
+#: guix/ui.scm:763 guix/ui.scm:769 guix/ui.scm:786 guix/ui.scm:839
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1161
-#: guix/scripts/system.scm:1170 guix/scripts/system.scm:1177
+#: guix/scripts/hash.scm:154 guix/scripts/system.scm:1204
+#: guix/scripts/system.scm:1220 guix/scripts/system.scm:1227
+#: guix/scripts/system.scm:1233
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "número errado de argumentos~%"
 
-#: guix/scripts/import.scm:86
+#: guix/scripts/import.scm:88
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
@@ -1220,21 +2576,21 @@ msgstr ""
 "Uso: guix import IMPORTADOR ARGUMENTOS ...\n"
 "Executa IMPORTADOR com ARGUMENTOS.\n"
 
-#: guix/scripts/import.scm:89
+#: guix/scripts/import.scm:91
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTADOR deve ser um dos importadores listados abaixo:\n"
 
-#: guix/scripts/import.scm:103
+#: guix/scripts/import.scm:105
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix: import: faltando o nome de um importador~%"
 
-#: guix/scripts/import.scm:123
+#: guix/scripts/import.scm:126
 #, scheme-format
 msgid "'~a' import failed~%"
 msgstr "importação de \"~a\" falhou~%"
 
-#: guix/scripts/import.scm:124
+#: guix/scripts/import.scm:127
 #, scheme-format
 msgid "~a: invalid importer~%"
 msgstr "~a: importador inválido~%"
@@ -1255,22 +2611,30 @@ msgstr ""
 "\n"
 "  -a, --archive=PACOTE   especifica o repositório de pacote"
 
-#: guix/scripts/import/cran.scm:110
+#: guix/scripts/import/cran.scm:49
+msgid ""
+"\n"
+"  -r, --recursive        import packages recursively"
+msgstr ""
+"\n"
+"  -r, --recursive        importa pacotes recursivamente"
+
+#: guix/scripts/import/cran.scm:106
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
 msgstr "falha ao baixar descrição para o pacote \"~a\"~%"
 
-#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:113
+#: guix/scripts/import/cran.scm:110 guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "too few arguments~%"
 msgstr "poucos argumentos~%"
 
-#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:115
+#: guix/scripts/import/cran.scm:112 guix/scripts/import/elpa.scm:112
 #, scheme-format
 msgid "too many arguments~%"
 msgstr "número excessivo de argumentos~%"
 
-#: guix/scripts/import/elpa.scm:44
+#: guix/scripts/import/elpa.scm:43
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
@@ -1278,7 +2642,7 @@ msgstr ""
 "Uso: guix import elpa NOME-PACOTE\n"
 "Importa o último pacote chamado NOME-PACOTE de um repositório ELPA.\n"
 
-#: guix/scripts/import/elpa.scm:46
+#: guix/scripts/import/elpa.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
@@ -1286,7 +2650,7 @@ msgstr ""
 "\n"
 "  -a, --archive=PACOTE           especifica o repositório de pacote"
 
-#: guix/scripts/import/elpa.scm:48
+#: guix/scripts/import/elpa.scm:47
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
@@ -1294,7 +2658,7 @@ msgstr ""
 "\n"
 "  -h, --help                     exibe esta ajuda e sai"
 
-#: guix/scripts/import/elpa.scm:50
+#: guix/scripts/import/elpa.scm:49
 msgid ""
 "\n"
 "  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
@@ -1302,7 +2666,7 @@ msgstr ""
 "\n"
 "  -r, --recursive                gera expressões de pacote para todos os pacotes do Emacs que ainda não estão no Guix"
 
-#: guix/scripts/import/elpa.scm:52
+#: guix/scripts/import/elpa.scm:51
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
@@ -1310,31 +2674,12 @@ msgstr ""
 "\n"
 "  -V, --version                  exibe informações da versão e sai"
 
-#: guix/scripts/import/elpa.scm:110
+#: guix/scripts/import/elpa.scm:107
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr "falha ao baixar localidade: \"~a\"~%"
 
-#: guix/scripts/pull.scm:66
-#, scheme-format
-msgid ""
-"Guile-Git is missing but it is now required by 'guix pull'.\n"
-"Install it by running:\n"
-"\n"
-"  guix package -i ~a\n"
-"  export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n"
-"  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
-"\n"
-msgstr ""
-"Guile-Git está faltando, mas agora é necessário por \"guix pull\".\n"
-"Instale-o executando:\n"
-"\n"
-"  guix package -i ~a\n"
-"  export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n"
-"  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
-"\n"
-
-#: guix/scripts/pull.scm:103
+#: guix/scripts/pull.scm:87
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
@@ -1342,7 +2687,15 @@ msgstr ""
 "Uso: guix pull [OPÇÃO]...\n"
 "Baixa e implanta a última versão do Guix.\n"
 
-#: guix/scripts/pull.scm:107
+#: guix/scripts/pull.scm:89
+msgid ""
+"\n"
+"  -C, --channels=FILE    deploy the channels defined in FILE"
+msgstr ""
+"\n"
+"  -C, --channels=ARQUIVO implanta os canais definidos no ARQUIVO"
+
+#: guix/scripts/pull.scm:91
 msgid ""
 "\n"
 "      --url=URL          download from the Git repository at URL"
@@ -1350,7 +2703,7 @@ msgstr ""
 "\n"
 "      --url=URL          baixa do repositório Git na URL"
 
-#: guix/scripts/pull.scm:109
+#: guix/scripts/pull.scm:93
 msgid ""
 "\n"
 "      --commit=COMMIT    download the specified COMMIT"
@@ -1358,13 +2711,30 @@ msgstr ""
 "\n"
 "      --commit=COMMIT    baixa o COMMIT especificado"
 
-#: guix/scripts/pull.scm:111
+#: guix/scripts/pull.scm:95
 msgid ""
 "\n"
 "      --branch=BRANCH    download the tip of the specified BRANCH"
 msgstr ""
 "\n"
-"      --branch=RAMO    baixa a dica do RAMO especificado"
+"      --branch=RAMO      baixa a dica do RAMO especificado"
+
+#: guix/scripts/pull.scm:97
+msgid ""
+"\n"
+"  -N, --news             display news compared to the previous generation"
+msgstr ""
+"\n"
+"  -N, --news             exibe novidades em comparação com a geração anterior"
+
+#: guix/scripts/pull.scm:110
+#, scheme-format
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  use PROFILE instead of ~/.config/guix/current"
+msgstr ""
+"\n"
+"  -p, --profile=PERFIL   usa PERFIL em vez de ~/.config/guix/current"
 
 #: guix/scripts/pull.scm:116
 msgid ""
@@ -1374,157 +2744,189 @@ msgstr ""
 "\n"
 "      --bootstrap        usa inicialização do Guile para compilar o novo Guix"
 
-#: guix/scripts/pull.scm:263
+#: guix/scripts/pull.scm:217
+msgid "New in this revision:\n"
+msgstr "Novo nesta revisão:\n"
+
+#. TRANSLATORS: This describes a "channel"; the first placeholder is
+#. the channel name (e.g., "guix") and the second placeholder is its
+#. URL.
+#: guix/scripts/pull.scm:226
+#, scheme-format
+msgid "    ~a at ~a~%"
+msgstr "    ~a em ~a~%"
+
+#: guix/scripts/pull.scm:264
+#, scheme-format
+msgid "    commit ~a~%"
+msgstr "    commit ~a~%"
+
+#: guix/scripts/pull.scm:301
 #, scheme-format
-msgid "cannot enforce use of the Let's Encrypt certificates~%"
-msgstr "não foi possível forçar o uso de certificados Let's Encrypt~%"
+msgid "News for channel '~a'~%"
+msgstr "Novidades para o canal \"~a\"~%"
 
-#: guix/scripts/pull.scm:265
+#: guix/scripts/pull.scm:327
 #, scheme-format
-msgid "please upgrade Guile-Git~%"
-msgstr "por favor, atualize o Guile-Git~%"
+msgid "  ~a new channel:~%"
+msgid_plural "  ~a new channels:~%"
+msgstr[0] "  ~a novo canal:~%"
+msgstr[1] "  ~a novos canais:~%"
 
-#: guix/scripts/pull.scm:273
+#: guix/scripts/pull.scm:337
+#, scheme-format
+msgid "  ~a channel removed:~%"
+msgid_plural "  ~a channels removed:~%"
+msgstr[0] "  ~a canal removido:~%"
+msgstr[1] "  ~a canais removidos:~%"
+
+#: guix/scripts/pull.scm:416
+msgid "Run @command{guix pull --news} to read all the news."
+msgstr "Execute @command{guix pull --news} para ler todas as novidades."
+
+#: guix/scripts/pull.scm:424
+#, scheme-format
+msgid ""
+"After setting @code{PATH}, run\n"
+"@command{hash guix} to make sure your shell refers to @file{~a}."
+msgstr ""
+"Após definir @code{PATH}, execute\n"
+"@command{hash guix} para se certificar que seu shell faz referência a @file{~a}."
+
+#: guix/scripts/pull.scm:449
 #, scheme-format
 msgid "Git error ~a~%"
 msgstr "erro no Git ~a~%"
 
-#: guix/scripts/pull.scm:275
+#: guix/scripts/pull.scm:451 guix/git.scm:364
 #, scheme-format
 msgid "Git error: ~a~%"
 msgstr "erro no Git: ~a~%"
 
-#: guix/scripts/pull.scm:302
+#: guix/scripts/pull.scm:476
 #, scheme-format
-msgid "    repository URL: ~a~%"
-msgstr "    URL do repositório: ~a~%"
+msgid "Migrating profile generations to '~a'...~%"
+msgstr "Migrando gerações de perfil para \"~a\"...~%"
 
-#: guix/scripts/pull.scm:304
+#: guix/scripts/pull.scm:518
 #, scheme-format
-msgid "    branch: ~a~%"
-msgstr "    ramo: ~a~%"
+msgid "while creating symlink '~a': ~a~%"
+msgstr "ao criar o link simbólico \"~a\": ~a~%"
+
+#: guix/scripts/pull.scm:620
+msgid "  ~h new package: ~a~%"
+msgid_plural "  ~h new packages: ~a~%"
+msgstr[0] "  ~h novo pacote: ~a~%"
+msgstr[1] "  ~h novos pacotes: ~a~%"
+
+#: guix/scripts/pull.scm:628
+msgid "  ~h package upgraded: ~a~%"
+msgid_plural "  ~h packages upgraded: ~a~%"
+msgstr[0] "  ~h pacote atualizado: ~a~%"
+msgstr[1] "  ~h pacotes atualizados: ~a~%"
 
-#: guix/scripts/pull.scm:305
+#: guix/scripts/pull.scm:717
 #, scheme-format
-msgid "    commit: ~a~%"
-msgstr "    commit: ~a~%"
+msgid "'~a' did not return a list of channels~%"
+msgstr "\"~a\" não retornou uma lista de canais~%"
 
-#: guix/scripts/pull.scm:373
+#: guix/scripts/pull.scm:733
 #, scheme-format
-msgid "Updating from Git repository at '~a'...~%"
-msgstr "Atualizando a partir do repositório Git \"~a\"...~%"
+msgid ""
+"The 'GUIX_PULL_URL' environment variable is deprecated.\n"
+"Use '~/.config/guix/channels.scm' instead."
+msgstr ""
+"A variável de ambiente \"GUIX_PULL_URL\" está obsoleta.\n"
+"Use \"~/.config/guix/channels.scm\"."
 
-#: guix/scripts/pull.scm:383
+#: guix/scripts/pull.scm:782
 #, scheme-format
-msgid "Building from Git commit ~a...~%"
-msgstr "Compilando a partir do commit Git ~a...~%"
+msgid "Building from this channel:~%"
+msgid_plural "Building from these channels:~%"
+msgstr[0] "Compilando a partir deste canal:~%"
+msgstr[1] "Compilando a partir destes canais:~%"
 
-#: guix/scripts/substitute.scm:125
+#: guix/scripts/substitute.scm:124
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
 msgstr "autenticação e autorização de substitutos desabilitado!~%"
 
-#: guix/scripts/substitute.scm:200
+#: guix/scripts/substitute.scm:210
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "download de \"~a\" falhou: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:213
+#: guix/scripts/substitute.scm:223
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
-msgstr "enquanto obtinha ~a: servidor está um pouco lento~%"
+msgstr "ao obter ~a: servidor está um pouco lento~%"
 
-#: guix/scripts/substitute.scm:215
+#: guix/scripts/substitute.scm:225
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr "tente \"--no-substitutes\" se o problema persistir~%"
 
-#: guix/scripts/substitute.scm:225
+#: guix/scripts/substitute.scm:235
 #, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
 msgstr "sem suporte ao esquema de URI de substituto: ~a~%"
 
-#: guix/scripts/substitute.scm:260
-#, scheme-format
-msgid "while fetching '~a': ~a (~s)~%"
-msgstr "enquanto obtinha \"~a\": ~a (~s)~%"
-
-#: guix/scripts/substitute.scm:265
-#, scheme-format
-msgid "ignoring substitute server at '~s'~%"
-msgstr "ignorando servidor substituto em \"~s\"~%"
-
-#: guix/scripts/substitute.scm:315
+#: guix/scripts/substitute.scm:274
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr "a versão de assinatura deve ser um número: ~s~%"
 
-#: guix/scripts/substitute.scm:319
+#: guix/scripts/substitute.scm:278
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "sem suporte à versão da assinatura: ~a~%"
 
-#: guix/scripts/substitute.scm:327
+#: guix/scripts/substitute.scm:286
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
 msgstr "a assinatura não é uma expressão-s válida: ~s~%"
 
-#: guix/scripts/substitute.scm:331
+#: guix/scripts/substitute.scm:290
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr "formato inválido do campo de assinatura: ~a~%"
 
-#: guix/scripts/substitute.scm:366
-#, scheme-format
-msgid "invalid signature for '~a'~%"
-msgstr "assinatura inválida para \"~a\"~%"
-
-#: guix/scripts/substitute.scm:368
+#: guix/scripts/substitute.scm:418
 #, scheme-format
-msgid "hash mismatch for '~a'~%"
-msgstr "hash incompatível para \"~a\"~%"
-
-#: guix/scripts/substitute.scm:370
-#, scheme-format
-msgid "'~a' is signed with an unauthorized key~%"
-msgstr "\"~a\" está assinado com uma chave não autorizada~%"
+msgid "'~a' does not name a store item~%"
+msgstr "\"~a\" não é o nome de um item do armazenamento~%"
 
-#: guix/scripts/substitute.scm:372
+#: guix/scripts/substitute.scm:603
 #, scheme-format
-msgid "signature on '~a' is corrupt~%"
-msgstr "a assinatura em \"~a\" está corrompida~%"
+msgid "~a: host not found: ~a~%"
+msgstr "~a: host não localizado: ~a~%"
 
-#: guix/scripts/substitute.scm:457
+#: guix/scripts/substitute.scm:609
 #, scheme-format
-msgid "'~a' does not name a store item~%"
-msgstr "\"~a\" não é o nome de um item do armazenamento~%"
+msgid "~a: connection failed: ~a~%"
+msgstr "~a: conexão falhou: ~a~%"
 
-#: guix/scripts/substitute.scm:619
+#: guix/scripts/substitute.scm:625
 #, scheme-format
 msgid "updating substitutes from '~a'... ~5,1f%"
 msgstr "atualizando substitutos de \"~a\"... ~5,1f%"
 
-#: guix/scripts/substitute.scm:683
+#: guix/scripts/substitute.scm:696
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
 msgstr "~s: sem suporte ao esquema de URI de servidor~%"
 
-#: guix/scripts/substitute.scm:693
-#, scheme-format
-msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr "\"~a\" usa um armazenamento diferente \"~a\"; ignorando-o~%"
-
-#: guix/scripts/substitute.scm:853
+#: guix/scripts/substitute.scm:836
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "erro na busca pelo nome da máquina: ~a~%"
 
-#: guix/scripts/substitute.scm:858
+#: guix/scripts/substitute.scm:841
 #, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
 msgstr "erro TLS no procedimento \"~a\": ~a~%"
 
-#: guix/scripts/substitute.scm:869
+#: guix/scripts/substitute.scm:852
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
@@ -1533,7 +2935,7 @@ msgstr ""
 "Ferramenta interna para substituir um binário pré-compilado para\n"
 "uma compilação local.\n"
 
-#: guix/scripts/substitute.scm:871
+#: guix/scripts/substitute.scm:854
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
@@ -1544,7 +2946,7 @@ msgstr ""
 "                         nomes de arquivos de armazenamento passados na\n"
 "                         entrada padrão"
 
-#: guix/scripts/substitute.scm:874
+#: guix/scripts/substitute.scm:857
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
@@ -1556,26 +2958,26 @@ msgstr ""
 "                         baixa ARQUIVO-ARMAZENAMENTO e armazena-o como um\n"
 "                         Nar no arquivo DESTINO"
 
-#: guix/scripts/substitute.scm:939
+#: guix/scripts/substitute.scm:978
 #, scheme-format
 msgid "no valid substitute for '~a'~%"
 msgstr "nenhum substituto válido para \"~a\"~%"
 
-#: guix/scripts/substitute.scm:946
+#: guix/scripts/substitute.scm:988
 #, scheme-format
 msgid "Downloading ~a...~%"
 msgstr "Baixando ~a...~%"
 
-#: guix/scripts/substitute.scm:1002
+#: guix/scripts/substitute.scm:1048
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr "ACL para importações de pacote parece não estar inicializado, substitutos podem estar indisponíveis\n"
 
-#: guix/scripts/substitute.scm:1056
+#: guix/scripts/substitute.scm:1102
 #, scheme-format
 msgid "~a: invalid URI~%"
 msgstr "~a: URI inválido~%"
 
-#: guix/scripts/substitute.scm:1116
+#: guix/scripts/substitute.scm:1173
 #, scheme-format
 msgid "~a: unrecognized options~%"
 msgstr "~a: opções desconhecidas~%"
@@ -1614,112 +3016,113 @@ msgstr ""
 msgid "wrong arguments"
 msgstr "argumentos errados"
 
-#: guix/scripts/system.scm:143
+#: guix/scripts/system.scm:154
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "falha ao registrar \"~a\" sob \"~a\"~%"
 
-#: guix/scripts/system.scm:154
+#: guix/scripts/system.scm:169
 #, scheme-format
 msgid "copying to '~a'..."
 msgstr "copiando para \"~a\"..."
 
-#: guix/scripts/system.scm:189
-#, scheme-format
-msgid "failed to install bootloader ~a~%"
-msgstr "falha ao instalar carregador de inicialização ~a~%"
-
-#: guix/scripts/system.scm:209
+#: guix/scripts/system.scm:196
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "inicialização do sistema de arquivos raiz atual~%"
 
-#: guix/scripts/system.scm:223
+#: guix/scripts/system.scm:210
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr "execução como não \"root\", então o dono de \"~a\" pode estar incorreto!~%"
 
-#: guix/scripts/system.scm:268
+#: guix/scripts/system.scm:240 guix/scripts/system.scm:757
+#: guix/scripts/system.scm:862
+#, scheme-format
+msgid "bootloader successfully installed on '~a'~%"
+msgstr "o carregador de inicialização foi instalado com sucesso sob \"~a\"~%"
+
+#: guix/scripts/system.scm:263
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
 msgstr "enquanto falava com o shepherd: ~a~%"
 
-#: guix/scripts/system.scm:275
+#: guix/scripts/system.scm:270
 #, scheme-format
 msgid "service '~a' could not be found~%"
 msgstr "o serviço \"~a\" não pôde ser localizado~%"
 
-#: guix/scripts/system.scm:278
+#: guix/scripts/system.scm:273
 #, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
 msgstr "o serviço \"~a\" não possui uma ação \"~a\"~%"
 
-#: guix/scripts/system.scm:282
+#: guix/scripts/system.scm:277
 #, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
 msgstr "exceção encontrada ao executar \"~a\" no serviço \"~a\":~%"
 
-#: guix/scripts/system.scm:290
+#: guix/scripts/system.scm:285
 #, scheme-format
 msgid "something went wrong: ~s~%"
 msgstr "algo deu errado: ~s~%"
 
-#: guix/scripts/system.scm:293
+#: guix/scripts/system.scm:288
 #, scheme-format
 msgid "shepherd error~%"
 msgstr "erro do shepherd~%"
 
-#: guix/scripts/system.scm:310
+#: guix/scripts/system.scm:305
 #, scheme-format
 msgid "failed to obtain list of shepherd services~%"
 msgstr "falha ao obter lista de serviços do shepherd~%"
 
-#: guix/scripts/system.scm:330
-#, scheme-format
-msgid "unloading service '~a'...~%"
-msgstr "descarregando serviço \"~a\"...~%"
-
-#: guix/scripts/system.scm:338
-#, scheme-format
-msgid "loading new services:~{ ~a~}...~%"
-msgstr "carregando novos serviços:~{ ~a~}...~%"
-
-#: guix/scripts/system.scm:364
-#, scheme-format
-msgid "activating system...~%"
-msgstr "ativando sistema...~%"
-
 # geração, criação?
-#: guix/scripts/system.scm:442
+#: guix/scripts/system.scm:368
 #, scheme-format
 msgid "cannot switch to system generation '~a'~%"
 msgstr "não foi possível alternar para a geração do sistema \"~a\"~%"
 
-#: guix/scripts/system.scm:513
+#: guix/scripts/system.scm:438
 msgid "the DAG of services"
 msgstr "o DAG de serviços"
 
-#: guix/scripts/system.scm:526
+#: guix/scripts/system.scm:451
 msgid "the dependency graph of shepherd services"
 msgstr "o gráfico de dependência de serviços do shepherd"
 
-#: guix/scripts/system.scm:550
+#: guix/scripts/system.scm:477
+#, scheme-format
+msgid "      repository URL: ~a~%"
+msgstr "      URL do repositório: ~a~%"
+
+#: guix/scripts/system.scm:479
+#, scheme-format
+msgid "      branch: ~a~%"
+msgstr "      ramo: ~a~%"
+
+#: guix/scripts/system.scm:480
+#, scheme-format
+msgid "      commit: ~a~%"
+msgstr "      commit: ~a~%"
+
+#: guix/scripts/system.scm:502
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  nome de arquivo: ~a~%"
 
-#: guix/scripts/system.scm:551
+#: guix/scripts/system.scm:503
 #, scheme-format
 msgid "  canonical file name: ~a~%"
 msgstr "  nome de arquivo canônico: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:553
+#: guix/scripts/system.scm:505
 #, scheme-format
 msgid "  label: ~a~%"
 msgstr "  rótulo: ~a~%"
 
-#: guix/scripts/system.scm:554
+#: guix/scripts/system.scm:506
 #, scheme-format
 msgid "  bootloader: ~a~%"
 msgstr "  carregador de inicialização: ~a~%"
@@ -1732,22 +3135,34 @@ msgstr "  carregador de inicialização: ~a~%"
 #. root device: label: "my-root"
 #. or just:
 #. root device: /dev/sda3
-#: guix/scripts/system.scm:564
+#: guix/scripts/system.scm:516
 #, scheme-format
 msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
 msgstr "  dispositivo raiz: ~[UUID: ~a~;rótulo: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:575
+#: guix/scripts/system.scm:527
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  kernel: ~a~%"
 
-#: guix/scripts/system.scm:646
+#. TRANSLATORS: Here "channel" is the same terminology as used in
+#. "guix describe" and "guix pull --channels".
+#: guix/scripts/system.scm:537
+#, scheme-format
+msgid "  channels:~%"
+msgstr "  canais:~%"
+
+#: guix/scripts/system.scm:540
+#, scheme-format
+msgid "  configuration file: ~a~%"
+msgstr "  arquivo de configuração: ~a~%"
+
+#: guix/scripts/system.scm:612
 #, scheme-format
 msgid "~a: error: device '~a' not found: ~a~%"
 msgstr "~a: erro: dispositivo \"~a\" não localizado: ~a~%"
 
-#: guix/scripts/system.scm:650
+#: guix/scripts/system.scm:616
 #, scheme-format
 msgid ""
 "If '~a' is a file system\n"
@@ -1756,37 +3171,42 @@ msgstr ""
 "Se \"~a\" for um rótulo de sistema de arquivos,\n"
 "escreva @code{(file-system-label ~s)} em seu campo @code{device}."
 
-#: guix/scripts/system.scm:658
+#: guix/scripts/system.scm:624
 #, scheme-format
 msgid "~a: error: file system with label '~a' not found~%"
 msgstr "~a: erro: sistema de arquivos com rótulo \"~a\" não localizado~%"
 
-#: guix/scripts/system.scm:663
+#: guix/scripts/system.scm:629
 #, scheme-format
 msgid "~a: error: file system with UUID '~a' not found~%"
 msgstr "~a: erro: sistema de arquivos com UUID \"~a\" não localizado~%"
 
-#: guix/scripts/system.scm:764
+#: guix/scripts/system.scm:734
 #, scheme-format
 msgid "~a not found: 'guix pull' was never run~%"
 msgstr "~a não localizado: \"guix pull\" nunca foi executado~%"
 
-#: guix/scripts/system.scm:765
+#: guix/scripts/system.scm:735
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
 msgstr "Considere executar \"guix pull\" antes de \"reconfigure\".~%"
 
-#: guix/scripts/system.scm:766
+#: guix/scripts/system.scm:736
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
 msgstr "Falhar em fazer isso pode fazer um downgrade de seu sistema!~%"
 
-#: guix/scripts/system.scm:883
+#: guix/scripts/system.scm:855
+#, scheme-format
+msgid "activating system...~%"
+msgstr "ativando sistema...~%"
+
+#: guix/scripts/system.scm:868
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "inicializando sistema operacional sob \"~a\"...~%"
 
-#: guix/scripts/system.scm:928
+#: guix/scripts/system.scm:912
 msgid ""
 "Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
@@ -1796,71 +3216,79 @@ msgstr ""
 "Compilação do sistema operacional declarado em ARQUIVO de acordo com AÇÃO.\n"
 "Algumas AÇÕES fornecem suporte adicional a ARGUMENTOS.\n"
 
-#: guix/scripts/system.scm:932 guix/scripts/container.scm:28
+#: guix/scripts/system.scm:916 guix/scripts/container.scm:29
 msgid "The valid values for ACTION are:\n"
 msgstr "Os valores válidos para AÇÃO são:\n"
 
-#: guix/scripts/system.scm:934
+#: guix/scripts/system.scm:918
 msgid "   search           search for existing service types\n"
 msgstr "   search           pesquisa por tipos de serviços existentes\n"
 
-#: guix/scripts/system.scm:936
+#: guix/scripts/system.scm:920
 msgid "   reconfigure      switch to a new operating system configuration\n"
 msgstr "   reconfigure      alterna para configuração de um novo sistema operacional\n"
 
-#: guix/scripts/system.scm:938
+#: guix/scripts/system.scm:922
 msgid "   roll-back        switch to the previous operating system configuration\n"
 msgstr "   roll-back        alterna para a configuração de sistema operacional anterior\n"
 
-#: guix/scripts/system.scm:940
-msgid "   switch-generation switch to an existing operating system configuration\n"
-msgstr "   switch-generation alterna para uma configuração de sistema operacional existente\n"
+#: guix/scripts/system.scm:924
+msgid "   describe         describe the current system\n"
+msgstr "   describe         descreve o sistema atual\n"
 
-#: guix/scripts/system.scm:942
+#: guix/scripts/system.scm:926
 msgid "   list-generations list the system generations\n"
 msgstr "   list-generations lista as gerações do sistema\n"
 
-#: guix/scripts/system.scm:944
+#: guix/scripts/system.scm:928
+msgid "   switch-generation switch to an existing operating system configuration\n"
+msgstr "   switch-generation alterna para uma configuração de sistema operacional existente\n"
+
+#: guix/scripts/system.scm:930
+msgid "   delete-generations delete old system generations\n"
+msgstr "   delete-generations excluir as gerações antigas do sistema\n"
+
+#: guix/scripts/system.scm:932
 msgid "   build            build the operating system without installing anything\n"
 msgstr "   build            compila o sistema operacional sem instalador nada\n"
 
-#: guix/scripts/system.scm:946
+#: guix/scripts/system.scm:934
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
 "   container        compila um contêiner que compartilha o armazenamento\n"
 "                    da máquina\n"
 
-#: guix/scripts/system.scm:948
+#: guix/scripts/system.scm:936
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
 "   vm               compila uma imagem de máquina virtual que compartilha\n"
 "                    o armazenamento da máquina\n"
 
-#: guix/scripts/system.scm:950
+#: guix/scripts/system.scm:938
 msgid "   vm-image         build a freestanding virtual machine image\n"
 msgstr "   vm-image         compila uma imagem de máquina virtual independente\n"
 
-#: guix/scripts/system.scm:952
+#: guix/scripts/system.scm:940
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
 msgstr "   disk-image       compila uma imagem de disco, adequada para pendrive USB\n"
 
-#: guix/scripts/system.scm:954
+#: guix/scripts/system.scm:942
 msgid "   docker-image     build a Docker image\n"
 msgstr "   docker-image     compila uma imagem de Docker\n"
 
-#: guix/scripts/system.scm:956
+#: guix/scripts/system.scm:944
 msgid "   init             initialize a root file system to run GNU\n"
 msgstr "   init             inicializa um sistema de arquivos raiz para executar GNU\n"
 
-#: guix/scripts/system.scm:958
+#: guix/scripts/system.scm:946
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
 msgstr "   extension-graph  emite o gráfico da extensão de serviço no formato Dot\n"
 
-#: guix/scripts/system.scm:960
+#: guix/scripts/system.scm:948
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
 msgstr "   shepherd-graph   emite o gráfico de serviços do shepherd no formato Dot\n"
 
-#: guix/scripts/system.scm:964
+#: guix/scripts/system.scm:952
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
@@ -1868,27 +3296,29 @@ msgstr ""
 "\n"
 "  -d, --derivation       retorna a derivação do sistema dado"
 
-#: guix/scripts/system.scm:966
+#: guix/scripts/system.scm:954
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
 "                         instead of reading FILE, when applicable"
 msgstr ""
 "\n"
-"  -e, --expression=EXPR  considera operating-sistem para o qual EXPR avalia\n"
-"                         em vez de ler ARQUIVO, quando aplicável"
+"  -e, --expression=EXPR  considera o sistema operacional para o qual EXPR\n"
+"                         avalia em vez de ler ARQUIVO, quando aplicável"
 
-#: guix/scripts/system.scm:969
+#: guix/scripts/system.scm:957
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
-"                         apply STRATEGY when an error occurs while reading FILE"
+"                         apply STRATEGY (one of nothing-special, backtrace,\n"
+"                         or debug) when an error occurs while reading FILE"
 msgstr ""
 "\n"
 "      --on-error=ESTRATÉGIA\n"
-"                         aplica ESTRATÉGIA ao ocorrer um erro ao ler ARQUIVO"
+"                         aplica ESTRATÉGIA (podendo ser nothing-special,\n"
+"                         backtrace ou debug) ocorrer um erro ao ler ARQUIVO"
 
-#: guix/scripts/system.scm:972
+#: guix/scripts/system.scm:961
 msgid ""
 "\n"
 "      --file-system-type=TYPE\n"
@@ -1900,7 +3330,7 @@ msgstr ""
 "                         para \"disk-image\", produz um sistema de arquivos\n"
 "                         raiz do TIPO (um entre \"ext4\", \"iso9660\")"
 
-#: guix/scripts/system.scm:976
+#: guix/scripts/system.scm:965
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
@@ -1908,7 +3338,7 @@ msgstr ""
 "\n"
 "      --image-size=TAM   para \"vm-image\", produz uma imagem de TAM"
 
-#: guix/scripts/system.scm:978
+#: guix/scripts/system.scm:967
 msgid ""
 "\n"
 "      --no-bootloader    for 'init', do not install a bootloader"
@@ -1916,7 +3346,15 @@ msgstr ""
 "\n"
 "      --no-bootloader    para \"init\", não instala um carregador de inic."
 
-#: guix/scripts/system.scm:980
+#: guix/scripts/system.scm:969 guix/scripts/pack.scm:921
+msgid ""
+"\n"
+"      --save-provenance  save provenance information"
+msgstr ""
+"\n"
+"      --save-provenance  salva informações proveniência"
+
+#: guix/scripts/system.scm:971
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
@@ -1925,7 +3363,24 @@ msgstr ""
 "      --share=ESPEC      para \"vm\", compartilha o sistema de arquivos do\n"
 "                         hospedeiro de acordo com ESPEC"
 
-#: guix/scripts/system.scm:982
+#: guix/scripts/system.scm:973
+msgid ""
+"\n"
+"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
+msgstr ""
+"\n"
+"      --expose=ESPEC     para \"vm\", expõe o sistema de arquivos do\n"
+"                         hospedeiro de acordo com ESPEC"
+
+#: guix/scripts/system.scm:975
+msgid ""
+"\n"
+"  -N, --network          for 'container', allow containers to access the network"
+msgstr ""
+"\n"
+"  -N, --network          para \"container\", permite que contêineres acessem a rede"
+
+#: guix/scripts/system.scm:977
 msgid ""
 "\n"
 "  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
@@ -1938,16 +3393,7 @@ msgstr ""
 "                         o resultado e o registra, como um coletor de lixo\n"
 "                         central"
 
-#: guix/scripts/system.scm:986
-msgid ""
-"\n"
-"      --expose=SPEC      for 'vm', expose host file system according to SPEC"
-msgstr ""
-"\n"
-"      --expose=ESPEC     para \"vm\", expõe o sistema de arquivos do\n"
-"                         hospedeiro de acordo com ESPEC"
-
-#: guix/scripts/system.scm:988
+#: guix/scripts/system.scm:981
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
@@ -1956,7 +3402,7 @@ msgstr ""
 "      --full-boot        para \"vm\", faz uma sequência completa de\n"
 "                         inicialização"
 
-#: guix/scripts/system.scm:990
+#: guix/scripts/system.scm:983
 msgid ""
 "\n"
 "      --skip-checks      skip file system and initrd module safety checks"
@@ -1965,336 +3411,61 @@ msgstr ""
 "      --skip-checks      ignora verificações de segurança do sistema de\n"
 "                         arquivos e de módulo de initrd"
 
-#: guix/scripts/system.scm:1089
+#: guix/scripts/system.scm:1100
+#, scheme-format
+msgid "'~a' does not return an operating system~%"
+msgstr "\"~a\" não retorna um sistema operacional~%"
+
+#: guix/scripts/system.scm:1123
 #, scheme-format
 msgid "both file and expression cannot be specified~%"
 msgstr "não podem ser especificados arquivo e expressão~%"
 
-#: guix/scripts/system.scm:1096
+#: guix/scripts/system.scm:1130
 #, scheme-format
 msgid "no configuration specified~%"
 msgstr "nenhuma configuração especificada~%"
 
-#: guix/scripts/system.scm:1196
+#: guix/scripts/system.scm:1209
+#, scheme-format
+msgid "no system generation, nothing to describe~%"
+msgstr "nenhuma geração de sistema, nada para descrever~%"
+
+#: guix/scripts/system.scm:1253
 #, scheme-format
 msgid "~a: unknown action~%"
 msgstr "~a: ação desconhecida~%"
 
-#: guix/scripts/system.scm:1212
+#: guix/scripts/system.scm:1269
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "número errado de argumentos para a ação \"~a\"~%"
 
-#: guix/scripts/system.scm:1217
+#: guix/scripts/system.scm:1274
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: faltando um nome de comando~%"
 
-#: guix/scripts/system.scm:1219
+#: guix/scripts/system.scm:1276
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Tente \"guix system --help\" para mais informações.~%"
 
-#: guix/scripts/system/search.scm:88 guix/ui.scm:1162 guix/ui.scm:1176
+#: guix/scripts/system/search.scm:92 guix/ui.scm:1332 guix/ui.scm:1350
 msgid "unknown"
 msgstr "desconhecido"
 
-#: guix/scripts/lint.scm:139
-#, scheme-format
-msgid "Available checkers:~%"
-msgstr "Verificadores disponíveis:~%"
-
-#: guix/scripts/lint.scm:163
-msgid "description should not be empty"
-msgstr "a descrição deve não estar vazia"
-
-#: guix/scripts/lint.scm:173
-msgid "Texinfo markup in description is invalid"
-msgstr "a marcação Texinfo na descrição é inválida"
-
-#: guix/scripts/lint.scm:183
-#, scheme-format
-msgid ""
-"description should not contain ~\n"
-"trademark sign '~a' at ~d"
-msgstr ""
-"a descrição não deve conter ~\n"
-"sinal de marca registrada \"~a\" em ~d"
-
-#. TRANSLATORS: '@code' is Texinfo markup and must be kept
-#. as is.
-#: guix/scripts/lint.scm:196
-msgid "use @code or similar ornament instead of quotes"
-msgstr "use @code ou ornamento similar em vez de aspas"
-
-#: guix/scripts/lint.scm:203
-msgid "description should start with an upper-case letter or digit"
-msgstr "a descrição deve iniciar com uma letra maiúscula ou dígito"
-
-#: guix/scripts/lint.scm:219
-#, scheme-format
-msgid ""
-"sentences in description should be followed ~\n"
-"by two spaces; possible infraction~p at ~{~a~^, ~}"
-msgstr ""
-"sentenças nas descrição devem ser seguidas ~\n"
-"por dois espaços; possível infração~p em ~{~a~^, ~}"
-
-#: guix/scripts/lint.scm:237
-#, scheme-format
-msgid "invalid description: ~s"
-msgstr "a descrição inválida: ~s"
-
-#: guix/scripts/lint.scm:282
-#, scheme-format
-msgid "'~a' should probably be a native input"
-msgstr "\"~a\" provavelmente é uma entrada nativa"
-
-#: guix/scripts/lint.scm:298
-#, scheme-format
-msgid "'~a' should probably not be an input at all"
-msgstr "\"~a\" provavelmente deve não ser uma entrada"
-
-#: guix/scripts/lint.scm:315
-msgid "synopsis should not be empty"
-msgstr "a sinopse deve não estar vazia"
-
-#: guix/scripts/lint.scm:323
-msgid "no period allowed at the end of the synopsis"
-msgstr "nenhum ponto permitido ao final da sinopse"
-
-#: guix/scripts/lint.scm:335
-msgid "no article allowed at the beginning of the synopsis"
-msgstr "nenhum artigo permitido no início da sinopse"
-
-#: guix/scripts/lint.scm:342
-msgid "synopsis should be less than 80 characters long"
-msgstr "a sinopse deve ser menor que 80 caracteres"
-
-#: guix/scripts/lint.scm:348
-msgid "synopsis should start with an upper-case letter or digit"
-msgstr "a sinopse deve iniciar com uma letra maiúscula ou dígito"
-
-#: guix/scripts/lint.scm:355
-msgid "synopsis should not start with the package name"
-msgstr "a sinopse deve não iniciar com o nome do pacote"
-
-#: guix/scripts/lint.scm:365
-msgid "Texinfo markup in synopsis is invalid"
-msgstr "Marcação Texinfo na sinopse é inválida"
-
-#: guix/scripts/lint.scm:384
-#, scheme-format
-msgid "invalid synopsis: ~s"
-msgstr "sinopse inválida: ~s"
-
-#: guix/scripts/lint.scm:503
-#, scheme-format
-msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr "a URI ~a retornou um arquivo suspeitosamente pequeno (~a bytes)"
-
-#: guix/scripts/lint.scm:513
-#, scheme-format
-msgid "permanent redirect from ~a to ~a"
-msgstr "redirecionamento permanente de ~a para ~a"
-
-#: guix/scripts/lint.scm:520
-#, scheme-format
-msgid "invalid permanent redirect from ~a"
-msgstr "redirecionamento permanente inválido de ~a"
-
-#: guix/scripts/lint.scm:527 guix/scripts/lint.scm:539
-#, scheme-format
-msgid "URI ~a not reachable: ~a (~s)"
-msgstr "a URI ~a não é alcançável: ~a (~s)"
-
-#: guix/scripts/lint.scm:546
-#, scheme-format
-msgid "URI ~a domain not found: ~a"
-msgstr "o domínio da URI ~a não foi localizado: ~a"
-
-#: guix/scripts/lint.scm:554
-#, scheme-format
-msgid "URI ~a unreachable: ~a"
-msgstr "URI ~a inalcançável: ~a"
-
-#: guix/scripts/lint.scm:563
-#, scheme-format
-msgid "TLS certificate error: ~a"
-msgstr "erro de certificado TLS: ~a"
-
-#: guix/scripts/lint.scm:584
-msgid "invalid value for home page"
-msgstr "valor inválido para página inicial"
-
-#: guix/scripts/lint.scm:587
-#, scheme-format
-msgid "invalid home page URL: ~s"
-msgstr "URL de página inicial inválida: ~s"
-
-#: guix/scripts/lint.scm:613
-msgid "file names of patches should start with the package name"
-msgstr "nomes de arquivos de patches devem iniciar com o nome do pacote"
-
-#: guix/scripts/lint.scm:629
-#, scheme-format
-msgid "~a: file name is too long"
-msgstr "~a: o nome de arquivo é longo demais"
-
-#: guix/scripts/lint.scm:670
-#, scheme-format
-msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr "~a: ~a: sinopse proposta: ~s~%"
-
-#: guix/scripts/lint.scm:683
-#, scheme-format
-msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr "~a: ~a: descrição proposta:~%     \"~a\"~%"
-
-#: guix/scripts/lint.scm:725
-msgid "all the source URIs are unreachable:"
-msgstr "todas as URIs fontes estão inalcançáveis:"
-
-#: guix/scripts/lint.scm:747
-msgid "the source file name should contain the package name"
-msgstr "o nome de arquivo fonte deve conter o nome do pacote"
-
-#: guix/scripts/lint.scm:763
-#, scheme-format
-msgid "URL should be 'mirror://~a/~a'"
-msgstr "a URL deve ser \"mirror://~a/~a\""
-
-#: guix/scripts/lint.scm:781 guix/scripts/lint.scm:785
-#, scheme-format
-msgid "failed to create derivation: ~a"
-msgstr "falha ao criar a derivação: ~a"
-
-#: guix/scripts/lint.scm:799
-#, scheme-format
-msgid "failed to create derivation: ~s~%"
-msgstr "falha ao criar a derivação: ~s~%"
-
-#: guix/scripts/lint.scm:809
-msgid "invalid license field"
-msgstr "campo de licença inválido"
-
-#: guix/scripts/lint.scm:816
-#, scheme-format
-msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
-msgstr "~a: erro HTTP GET para ~a: ~a (~s)~%"
-
-#: guix/scripts/lint.scm:826
-#, scheme-format
-msgid "~a: host lookup failure: ~a~%"
-msgstr "~a: falha ao procurar o host: ~a~%"
-
-#: guix/scripts/lint.scm:831
+#: guix/scripts/lint.scm:51
 #, scheme-format
-msgid "~a: TLS certificate error: ~a"
-msgstr "~a: erro de certificado TLS: ~a"
-
-#: guix/scripts/lint.scm:846
-msgid "while retrieving CVE vulnerabilities"
-msgstr "ao obter vulnerabilidades CVE"
+msgid "~a@~a: ~a~%"
+msgstr "~a@~a: ~a~%"
 
-#: guix/scripts/lint.scm:883
+#: guix/scripts/lint.scm:74
 #, scheme-format
-msgid "probably vulnerable to ~a"
-msgstr "provavelmente vulnerável a ~a"
-
-#: guix/scripts/lint.scm:890
-#, scheme-format
-msgid "while retrieving upstream info for '~a'"
-msgstr "ao obter informações do upstream para \"~a\""
-
-#: guix/scripts/lint.scm:898
-#, scheme-format
-msgid "can be upgraded to ~a"
-msgstr "pode ser atualizado para ~a"
-
-#: guix/scripts/lint.scm:913
-#, scheme-format
-msgid "tabulation on line ~a, column ~a"
-msgstr "tabulação na linha ~a, coluna ~a"
-
-#: guix/scripts/lint.scm:922
-#, scheme-format
-msgid "trailing white space on line ~a"
-msgstr "espaço ao final da linha ~a"
-
-#: guix/scripts/lint.scm:932
-#, scheme-format
-msgid "line ~a is way too long (~a characters)"
-msgstr "a linha ~a está grande demais (~a caracteres)"
-
-#: guix/scripts/lint.scm:943
-#, scheme-format
-msgid "line ~a: parentheses feel lonely, move to the previous or next line"
-msgstr "linha ~a: parênteses está solitário, mova-o para a linha anterior ou a seguinte"
-
-#: guix/scripts/lint.scm:1013
-msgid "Validate package descriptions"
-msgstr "Valida descrições dos pacotes"
-
-#: guix/scripts/lint.scm:1017
-msgid "Validate synopsis & description of GNU packages"
-msgstr "Valida sinopse & descrição de pacotes GNU"
-
-#: guix/scripts/lint.scm:1021
-msgid "Identify inputs that should be native inputs"
-msgstr "Identifica entradas que devem ser nativas"
-
-#: guix/scripts/lint.scm:1025
-msgid "Identify inputs that shouldn't be inputs at all"
-msgstr "Identifica entradas que podem ser entradas"
-
-#: guix/scripts/lint.scm:1029
-msgid "Validate file names and availability of patches"
-msgstr "Valida nomes de arquivos e disponibilidade de patches"
-
-#: guix/scripts/lint.scm:1033
-msgid "Validate home-page URLs"
-msgstr "Valida URLs de site"
-
-#. TRANSLATORS: <license> is the name of a data type and must not be
-#. translated.
-#: guix/scripts/lint.scm:1039
-msgid "Make sure the 'license' field is a <license> or a list thereof"
-msgstr "Certifica que o campo \"license\" é um <license> ou uma lista disto"
-
-#: guix/scripts/lint.scm:1044
-msgid "Validate source URLs"
-msgstr "Valida URLs fonte"
-
-#: guix/scripts/lint.scm:1048
-msgid "Suggest 'mirror://' URLs"
-msgstr "Sugere URLs \"mirror://\""
-
-#: guix/scripts/lint.scm:1052
-msgid "Validate file names of sources"
-msgstr "Valida nomes de arquivos dos fontes"
-
-#: guix/scripts/lint.scm:1056
-msgid "Report failure to compile a package to a derivation"
-msgstr "Relata falha ao compilar um pacote para uma derivação"
-
-#: guix/scripts/lint.scm:1060
-msgid "Validate package synopses"
-msgstr "Valida sinopses do pacotes"
-
-#: guix/scripts/lint.scm:1064
-msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr "Verifica o banco de dados de Vulnerabilidades e Exposições Comuns (CVE)"
-
-#: guix/scripts/lint.scm:1069
-msgid "Check the package for new upstream releases"
-msgstr "Verifica o pacote por novos lançamentos do upstream"
-
-#: guix/scripts/lint.scm:1073
-msgid "Look for formatting issues in the source"
-msgstr "Procura por problemas de formatação no fonte"
+msgid "Available checkers:~%"
+msgstr "Verificadores disponíveis:~%"
 
-#: guix/scripts/lint.scm:1101
+#: guix/scripts/lint.scm:92
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
@@ -2304,7 +3475,7 @@ msgstr ""
 "Executa uma série de verificadores no pacote especificado; se nenhum\n"
 "for especificado, executa-os em todos pacote.\n"
 
-#: guix/scripts/lint.scm:1104
+#: guix/scripts/lint.scm:95
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -2314,7 +3485,7 @@ msgstr ""
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
 "                         executa apenas os verificadores especificados"
 
-#: guix/scripts/lint.scm:1109
+#: guix/scripts/lint.scm:103
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
@@ -2322,12 +3493,12 @@ msgstr ""
 "\n"
 "  -l, --list-checkers    exibe a lista de verificações lint disponíveis"
 
-#: guix/scripts/lint.scm:1129
+#: guix/scripts/lint.scm:122
 #, scheme-format
 msgid "~a: invalid checker~%"
 msgstr "~a: verificador inválido~%"
 
-#: guix/scripts/publish.scm:68
+#: guix/scripts/publish.scm:72
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
@@ -2336,7 +3507,7 @@ msgstr ""
 "Uso: guix publish [OPÇÃO]...\n"
 "Publica ~a por HTTP.\n"
 
-#: guix/scripts/publish.scm:70
+#: guix/scripts/publish.scm:74
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
@@ -2344,7 +3515,7 @@ msgstr ""
 "\n"
 "  -p, --port=PORTA       ouve na PORTA"
 
-#: guix/scripts/publish.scm:72
+#: guix/scripts/publish.scm:76
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
@@ -2352,7 +3523,7 @@ msgstr ""
 "\n"
 "      --listen=MÁQUINA   ouve na interface de rede pela MÁQUINA"
 
-#: guix/scripts/publish.scm:74
+#: guix/scripts/publish.scm:78
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
@@ -2360,17 +3531,17 @@ msgstr ""
 "\n"
 "  -u, --user=USUÁRIO     altera privilégios para o USUÁRIO assim que possível"
 
-#: guix/scripts/publish.scm:76
+#: guix/scripts/publish.scm:80
 msgid ""
 "\n"
-"  -C, --compression[=LEVEL]\n"
-"                         compress archives at LEVEL"
+"  -C, --compression[=METHOD:LEVEL]\n"
+"                         compress archives with METHOD at LEVEL"
 msgstr ""
 "\n"
-"  -C, --compression[=NÍVEL]\n"
-"                         comprime pacotes no NÍVEL"
+"  -C, --compression[=MÉTODO:NÍVEL]\n"
+"                         comprime pacotes com MÉTODO no NÍVEL"
 
-#: guix/scripts/publish.scm:79
+#: guix/scripts/publish.scm:83
 msgid ""
 "\n"
 "  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
@@ -2378,7 +3549,7 @@ msgstr ""
 "\n"
 "  -c, --cache=DIRETÓRIO  itens de cache publicados para DIRETÓRIO"
 
-#: guix/scripts/publish.scm:81
+#: guix/scripts/publish.scm:85
 msgid ""
 "\n"
 "      --workers=N        use N workers to bake items"
@@ -2387,7 +3558,7 @@ msgstr ""
 "      --workers=N        usa N trabalhos para preparar itens"
 
 # Abreviei segundos para a linha caber em 80 caracteres -- Rafael 
-#: guix/scripts/publish.scm:83
+#: guix/scripts/publish.scm:87
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
@@ -2395,7 +3566,7 @@ msgstr ""
 "\n"
 "      --ttl=TTL          anuncia que narinfos podem usar cache por TTL segs."
 
-#: guix/scripts/publish.scm:85
+#: guix/scripts/publish.scm:89
 msgid ""
 "\n"
 "      --nar-path=PATH    use PATH as the prefix for nar URLs"
@@ -2403,7 +3574,7 @@ msgstr ""
 "\n"
 "      --nar-path=CAMINHO  usa CAMINHO como o prefixo para URLs nar"
 
-#: guix/scripts/publish.scm:87
+#: guix/scripts/publish.scm:91
 msgid ""
 "\n"
 "      --public-key=FILE  use FILE as the public key for signatures"
@@ -2411,7 +3582,7 @@ msgstr ""
 "\n"
 "      --public-key=ARQUIVO  usa ARQUIVO como chave pública para assinaturas"
 
-#: guix/scripts/publish.scm:89
+#: guix/scripts/publish.scm:93
 msgid ""
 "\n"
 "      --private-key=FILE use FILE as the private key for signatures"
@@ -2419,7 +3590,7 @@ msgstr ""
 "\n"
 "      --private-key=ARQUIVO  usa ARQUIVO como chave privada para assinaturas"
 
-#: guix/scripts/publish.scm:91
+#: guix/scripts/publish.scm:95
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
@@ -2427,42 +3598,47 @@ msgstr ""
 "\n"
 "  -r, --repl[=PORTA]      faz um servidor de REPL na PORTA"
 
-#: guix/scripts/publish.scm:107
+#: guix/scripts/publish.scm:111
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "a procura da máquina \"~a\" falhou: ~a~%"
 
-#: guix/scripts/publish.scm:152
+#: guix/scripts/publish.scm:159
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "a procura da máquina \"~a\" retornou nada"
 
-#: guix/scripts/publish.scm:165
+#: guix/scripts/publish.scm:182
 #, scheme-format
-msgid "zlib support is missing; compression disabled~%"
-msgstr "suporte a zlib está faltando; compressão desabilitada~%"
+msgid "~a: unsupported compression type~%"
+msgstr "~a: sem suporte ao tipo de compressão~%"
 
-#: guix/scripts/publish.scm:179
+#: guix/scripts/publish.scm:196
 #, scheme-format
 msgid "~a: invalid duration~%"
 msgstr "~a: duração inválida~%"
 
-#: guix/scripts/publish.scm:869
+#: guix/scripts/publish.scm:1008
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "usuário \"~a\" não localizado: ~a~%"
 
-#: guix/scripts/publish.scm:910
+#: guix/scripts/publish.scm:1059
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr "servidor executado como root; considere usar a opção \"--user\"!~%"
 
-#: guix/scripts/publish.scm:915
+#: guix/scripts/publish.scm:1064
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "publicando ~a em ~a, porta ~d~%"
 
-#: guix/scripts/edit.scm:41
+#: guix/scripts/publish.scm:1070
+#, scheme-format
+msgid "using '~a' compression method, level ~a~%"
+msgstr "usando o método de compressão \"~a\", nível ~a~%"
+
+#: guix/scripts/edit.scm:45
 msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
@@ -2470,39 +3646,34 @@ msgstr ""
 "Uso: guix edit PACOTE...\n"
 "Inicia $VISUAL ou $EDITOR para editar as definições de PACOTE...\n"
 
-#: guix/scripts/edit.scm:62
+#: guix/scripts/edit.scm:69
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "arquivo \"~a\" não localizado no caminho de pesquisa ~s~%"
 
-#: guix/scripts/edit.scm:90
-#, scheme-format
-msgid "source location of package '~a' is unknown~%"
-msgstr "localização fonte de pacote \"~a\" é desconhecida~%"
-
-#: guix/scripts/edit.scm:103
+#: guix/scripts/edit.scm:104
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "falha ao iniciar \"~a\": ~a~%"
 
-#: guix/scripts/size.scm:77
+#: guix/scripts/size.scm:71
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
 msgstr "nenhuma informação de substituto disponível para \"~a\"~%"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:93
 msgid "store item"
 msgstr "item do armazenamento"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:93
 msgid "total"
 msgstr "total"
 
-#: guix/scripts/size.scm:99
+#: guix/scripts/size.scm:93
 msgid "self"
 msgstr "próprio"
 
-#: guix/scripts/size.scm:107
+#: guix/scripts/size.scm:101
 #, scheme-format
 msgid "total: ~,1f MiB~%"
 msgstr "total: ~,1f MB~%"
@@ -2510,11 +3681,11 @@ msgstr "total: ~,1f MB~%"
 #. TRANSLATORS: This is the title of a graph, meaning that the graph
 #. represents a profile of the store (the "store" being the place where
 #. packages are stored.)
-#: guix/scripts/size.scm:221
+#: guix/scripts/size.scm:224
 msgid "store profile"
 msgstr "perfil do armazenamento"
 
-#: guix/scripts/size.scm:230
+#: guix/scripts/size.scm:233
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
@@ -2522,7 +3693,7 @@ msgstr ""
 "Uso: guix size [OPÇÃO]... PACOTE...\n"
 "Relata o tamanho do PACOTE e suas dependências.\n"
 
-#: guix/scripts/size.scm:235
+#: guix/scripts/size.scm:238
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
@@ -2531,7 +3702,7 @@ msgstr ""
 "  -s, --system=SISTEMA   considera pacotes para SISTEMA--ex.: \"i686-linux\""
 
 #. TRANSLATORS: "closure" and "self" must not be translated.
-#: guix/scripts/size.scm:238
+#: guix/scripts/size.scm:241
 msgid ""
 "\n"
 "      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
@@ -2539,7 +3710,7 @@ msgstr ""
 "\n"
 "      --sort=CHAVE       ordena conforme a CHAVE--\"closure\" ou \"self\""
 
-#: guix/scripts/size.scm:240
+#: guix/scripts/size.scm:243
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
@@ -2547,90 +3718,94 @@ msgstr ""
 "\n"
 "  -m, --map-file=ARQUIVO escreve para ARQUIVO um mapa gráfico do uso do disco"
 
-#: guix/scripts/size.scm:271
+#: guix/scripts/size.scm:277
 #, scheme-format
 msgid "~a: invalid sorting key~%"
 msgstr "~a: chave de ordenação inválida~%"
 
-#: guix/scripts/size.scm:306
+#: guix/scripts/size.scm:315
 msgid "missing store item argument\n"
 msgstr "faltando argumento de item do armazenamento\n"
 
-#: guix/scripts/graph.scm:87
+#: guix/scripts/graph.scm:94
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr "~a: argumento inválido (esperava-se nome de pacote)"
 
-#: guix/scripts/graph.scm:98
+#: guix/scripts/graph.scm:105
 msgid "the DAG of packages, excluding implicit inputs"
 msgstr "o DAG dos pacotes, excluindo entradas implícitas"
 
-#: guix/scripts/graph.scm:124
+#: guix/scripts/graph.scm:141
 msgid "the reverse DAG of packages"
 msgstr "o DAG reverso de pacotes"
 
-#: guix/scripts/graph.scm:174
+#: guix/scripts/graph.scm:191
 msgid "the DAG of packages, including implicit inputs"
 msgstr "o DAG dos pacotes, incluindo entradas implícitas"
 
-#: guix/scripts/graph.scm:184
+#: guix/scripts/graph.scm:201
 msgid "the DAG of packages and origins, including implicit inputs"
 msgstr "o DAG dos pacotes e origens, incluindo entradas implícitas"
 
-#: guix/scripts/graph.scm:214
+#: guix/scripts/graph.scm:231
 msgid "same as 'bag', but without the bootstrap nodes"
 msgstr "mesmo que \"bag\", mas sem o nós de inicialização"
 
-#: guix/scripts/graph.scm:256
+#: guix/scripts/graph.scm:248
+msgid "the reverse DAG of packages, including implicit inputs"
+msgstr "o DAG reverso dos pacotes, incluindo entradas implícitas"
+
+#: guix/scripts/graph.scm:287
 msgid "the DAG of derivations"
 msgstr "o DAG de derivações"
 
-#: guix/scripts/graph.scm:268
+#: guix/scripts/graph.scm:299
 msgid "unsupported argument for derivation graph"
 msgstr "sem suporte ao argumento para gráfico de derivação"
 
-#: guix/scripts/graph.scm:294
+#: guix/scripts/graph.scm:325
 msgid "unsupported argument for this type of graph"
 msgstr "sem suporte ao argumento para esse tipo de gráfico"
 
-#: guix/scripts/graph.scm:307
+#: guix/scripts/graph.scm:338
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "referências para \"~a\" não são conhecidas~%"
 
-#: guix/scripts/graph.scm:314
+#: guix/scripts/graph.scm:345
 msgid "the DAG of run-time dependencies (store references)"
 msgstr "o DAG de dependências de tempo real (referências de armazenamento)"
 
-#: guix/scripts/graph.scm:330
+#: guix/scripts/graph.scm:361
 msgid "the DAG of referrers in the store"
 msgstr "o DAG de referências no armazenamento"
 
-#: guix/scripts/graph.scm:360
+#: guix/scripts/graph.scm:391
 msgid "the graph of package modules"
 msgstr "o gráfico dos módulos de pacote"
 
-#: guix/scripts/graph.scm:388
+#: guix/scripts/graph.scm:420
 #, scheme-format
 msgid "~a: unknown node type~%"
 msgstr "~a: tipo de nó desconhecido~%"
 
-#: guix/scripts/graph.scm:395
+#: guix/scripts/graph.scm:427
 #, scheme-format
 msgid "~a: unknown backend~%"
 msgstr "~a: backend desconhecido~%"
 
-#: guix/scripts/graph.scm:399
+#: guix/scripts/graph.scm:431
 msgid "The available node types are:\n"
 msgstr "Os tipos de nós disponíveis são:\n"
 
-#: guix/scripts/graph.scm:409
+#: guix/scripts/graph.scm:441
 msgid "The available backend types are:\n"
 msgstr "Os tipos de backends disponíveis são:\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:453
+#: guix/scripts/graph.scm:494
 msgid ""
 "Usage: guix graph PACKAGE...\n"
 "Emit a representation of the dependency graph of PACKAGE...\n"
@@ -2638,7 +3813,7 @@ msgstr ""
 "Uso: guix graph PACOTE...\n"
 "Emite uma representação do gráfico de dependências do PACOTE...\n"
 
-#: guix/scripts/graph.scm:455
+#: guix/scripts/graph.scm:496
 msgid ""
 "\n"
 "  -b, --backend=TYPE     produce a graph with the given backend TYPE"
@@ -2646,7 +3821,7 @@ msgstr ""
 "\n"
 "  -b, --backend=TIPO     produz um grafo com backend do TIPO"
 
-#: guix/scripts/graph.scm:457
+#: guix/scripts/graph.scm:498
 msgid ""
 "\n"
 "      --list-backends    list the available graph backends"
@@ -2654,7 +3829,7 @@ msgstr ""
 "\n"
 "      --list-backends    lista os backends de gráficos disponíveis"
 
-#: guix/scripts/graph.scm:459
+#: guix/scripts/graph.scm:500
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
@@ -2662,7 +3837,7 @@ msgstr ""
 "\n"
 "  -t, --type=TIPO        representa nós do TIPO dado"
 
-#: guix/scripts/graph.scm:461
+#: guix/scripts/graph.scm:502
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
@@ -2670,7 +3845,7 @@ msgstr ""
 "\n"
 "      --list-types       lista os tipos de gráficos disponíveis"
 
-#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:644
+#: guix/scripts/graph.scm:504 guix/scripts/pack.scm:906
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
@@ -2678,58 +3853,73 @@ msgstr ""
 "\n"
 "  -e, --expression=EXPR  considera o pacote que EXPR corresponder"
 
-#: guix/scripts/challenge.scm:191
+#: guix/scripts/graph.scm:506
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider the graph for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SISTEMA   considera o gráfico para SISTEMA--ex.: \"i686-linux\""
+
+#: guix/scripts/challenge.scm:301
+#, scheme-format
+msgid "  differing file:~%"
+msgid_plural "  differing files:~%"
+msgstr[0] "  arquivo divergindo:~%"
+msgstr[1] "  arquivos divergindo:~%"
+
+#: guix/scripts/challenge.scm:370
 #, scheme-format
 msgid "  local hash: ~a~%"
 msgstr "  hash local: ~a~%"
 
-#: guix/scripts/challenge.scm:192
+#: guix/scripts/challenge.scm:371
 #, scheme-format
 msgid "  no local build for '~a'~%"
 msgstr "  nenhuma compilação local para \"~a\"~%"
 
-#: guix/scripts/challenge.scm:194
+#: guix/scripts/challenge.scm:373
 #, scheme-format
 msgid "  ~50a: ~a~%"
 msgstr "  ~50a: ~a~%"
 
-#: guix/scripts/challenge.scm:202
+#: guix/scripts/challenge.scm:381
 #, scheme-format
 msgid "~a contents differ:~%"
 msgstr "conteúdo de ~a diverge:~%"
 
-#: guix/scripts/challenge.scm:205
+#: guix/scripts/challenge.scm:385
 #, scheme-format
 msgid "could not challenge '~a': no local build~%"
 msgstr "não foi possível desafiar \"~a\": nenhuma compilação local~%"
 
-#: guix/scripts/challenge.scm:207
+#: guix/scripts/challenge.scm:387
 #, scheme-format
 msgid "could not challenge '~a': no substitutes~%"
 msgstr "não foi possível desafiar \"~a\": nenhum substituto~%"
 
-#: guix/scripts/challenge.scm:210
+#: guix/scripts/challenge.scm:390
 #, scheme-format
 msgid "~a contents match:~%"
 msgstr "conteúdo de ~a corresponde:~%"
 
-#: guix/scripts/challenge.scm:219
+#: guix/scripts/challenge.scm:399
 msgid "~h store items were analyzed:~%"
 msgstr "~h itens de armazenamento foram analisados:~%"
 
-#: guix/scripts/challenge.scm:220
+#: guix/scripts/challenge.scm:400
 msgid "  - ~h (~,1f%) were identical~%"
 msgstr "  - ~h (~,1f%) eram idênticos~%"
 
-#: guix/scripts/challenge.scm:222
+#: guix/scripts/challenge.scm:402
 msgid "  - ~h (~,1f%) differed~%"
 msgstr "  - ~h (~,1f%) divergiram~%"
 
-#: guix/scripts/challenge.scm:224
+#: guix/scripts/challenge.scm:404
 msgid "  - ~h (~,1f%) were inconclusive~%"
 msgstr "  - ~h (~,1f%) foram inconclusivos~%"
 
-#: guix/scripts/challenge.scm:233
+#: guix/scripts/challenge.scm:413
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
@@ -2737,7 +3927,7 @@ msgstr ""
 "Uso: guix challenge [PACOTE...]\n"
 "Compara os substitutos por PACOTE... fornecido por um ou mais servidores.\n"
 
-#: guix/scripts/challenge.scm:235
+#: guix/scripts/challenge.scm:415
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -2747,7 +3937,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         compara resultados da compilação com os de URLS"
 
-#: guix/scripts/challenge.scm:238
+#: guix/scripts/challenge.scm:418
 msgid ""
 "\n"
 "      -v, --verbose      show details about successful comparisons"
@@ -2755,17 +3945,30 @@ msgstr ""
 "\n"
 "      -v, --verbose      mostra detalhes sobre comparações bem-sucedidas"
 
-#: guix/scripts/copy.scm:59
+#: guix/scripts/challenge.scm:420
+msgid ""
+"\n"
+"          --diff=MODE    show differences according to MODE"
+msgstr ""
+"\n"
+"          --diff=MODO    mostra diferenças conforme o MODO"
+
+#: guix/scripts/challenge.scm:449
+#, scheme-format
+msgid "~a: unknown diff mode~%"
+msgstr "~a: modo diff desconhecido~%"
+
+#: guix/scripts/copy.scm:60
 #, scheme-format
 msgid "~a: invalid TCP port number~%"
 msgstr "~a: número de porta TCP inválido~%"
 
-#: guix/scripts/copy.scm:61
+#: guix/scripts/copy.scm:62
 #, scheme-format
 msgid "~a: invalid SSH specification~%"
 msgstr "~a: especificação SSH inválida~%"
 
-#: guix/scripts/copy.scm:113
+#: guix/scripts/copy.scm:114
 msgid ""
 "Usage: guix copy [OPTION]... ITEMS...\n"
 "Copy ITEMS to or from the specified host over SSH.\n"
@@ -2773,7 +3976,7 @@ msgstr ""
 "Uso: guix copy [OPÇÃO]... ITENS...\n"
 "Copia ITENS para ou da máquina especificada por SSH.\n"
 
-#: guix/scripts/copy.scm:115
+#: guix/scripts/copy.scm:116
 msgid ""
 "\n"
 "      --to=HOST          send ITEMS to HOST"
@@ -2781,7 +3984,7 @@ msgstr ""
 "\n"
 "      --to=MÁQUINA       envia ITENS para MÁQUINA"
 
-#: guix/scripts/copy.scm:117
+#: guix/scripts/copy.scm:118
 msgid ""
 "\n"
 "      --from=HOST        receive ITEMS from HOST"
@@ -2789,17 +3992,22 @@ msgstr ""
 "\n"
 "      --from=MÁQUINA     recebe ITENS da MÁQUINA"
 
-#: guix/scripts/copy.scm:169
+#: guix/scripts/copy.scm:182
 #, scheme-format
 msgid "use '--to' or '--from'~%"
 msgstr "use \"--to\" ou \"--from\"~%"
 
-#: guix/scripts/pack.scm:89
+#: guix/scripts/pack.scm:98
 #, scheme-format
 msgid "~a: compressor not found~%"
 msgstr "~a: compressor não encontrado~%"
 
-#: guix/scripts/pack.scm:467
+#: guix/scripts/pack.scm:283
+#, scheme-format
+msgid "entry point not supported in the '~a' format~%"
+msgstr "ponto de entrada sem suporte no formato \"~a\"~%"
+
+#: guix/scripts/pack.scm:644
 #, scheme-format
 msgid ""
 "cross-compilation not implemented here;\n"
@@ -2808,12 +4016,45 @@ msgstr ""
 "compilação cruzada não implementada aqui;\n"
 "por favor, envie um e-mail para '~a'~%"
 
-#: guix/scripts/pack.scm:621
+#: guix/scripts/pack.scm:787
+msgid "The supported formats for 'guix pack' are:"
+msgstr "O comando \"guix pack\" tem suporte aos seguintes formatos:"
+
+#: guix/scripts/pack.scm:789
+msgid ""
+"\n"
+"  tarball       Self-contained tarball, ready to run on another machine"
+msgstr ""
+"\n"
+"  tarball       Tarball independente, pronto para executar em outra máquina"
+
+#: guix/scripts/pack.scm:791
+msgid ""
+"\n"
+"  squashfs      Squashfs image suitable for Singularity"
+msgstr ""
+"\n"
+"  squashfs      Imagem squashfs adequada para Singularity"
+
+#: guix/scripts/pack.scm:793
+msgid ""
+"\n"
+"  docker        Tarball ready for 'docker load'"
+msgstr ""
+"\n"
+"  docker        Tarball pronto para \"docker load\""
+
+#: guix/scripts/pack.scm:862
 #, scheme-format
 msgid "~a: invalid symlink specification~%"
 msgstr "~a: especificação de link simbólico inválida~%"
 
-#: guix/scripts/pack.scm:634
+#: guix/scripts/pack.scm:876
+#, scheme-format
+msgid "~a: unsupported profile name~%"
+msgstr "~a: sem suporte ao nome de perfil~%"
+
+#: guix/scripts/pack.scm:894
 msgid ""
 "Usage: guix pack [OPTION]... PACKAGE...\n"
 "Create a bundle of PACKAGE.\n"
@@ -2821,7 +4062,7 @@ msgstr ""
 "Uso: guix pack [OPÇÃO]... PACOTE...\n"
 "Cria um pacote de PACOTE.\n"
 
-#: guix/scripts/pack.scm:640
+#: guix/scripts/pack.scm:900
 msgid ""
 "\n"
 "  -f, --format=FORMAT    build a pack in the given FORMAT"
@@ -2829,7 +4070,15 @@ msgstr ""
 "\n"
 "  -f, --format=FORMATO   compila um pacote no FORMATO dado"
 
-#: guix/scripts/pack.scm:642
+#: guix/scripts/pack.scm:902
+msgid ""
+"\n"
+"      --list-formats     list the formats available"
+msgstr ""
+"\n"
+"      --list-formatos    lista os formatos disponíveis"
+
+#: guix/scripts/pack.scm:904
 msgid ""
 "\n"
 "  -R, --relocatable      produce relocatable executables"
@@ -2837,7 +4086,7 @@ msgstr ""
 "\n"
 "  -R, --relocatable      produz executáveis relocados"
 
-#: guix/scripts/pack.scm:650
+#: guix/scripts/pack.scm:912
 msgid ""
 "\n"
 "  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
@@ -2846,7 +4095,7 @@ msgstr ""
 "  -C, --compression=FERRAMENTA\n"
 "                         comprime usando FERRAMENTA--ex. \"lzip\""
 
-#: guix/scripts/pack.scm:652
+#: guix/scripts/pack.scm:914
 msgid ""
 "\n"
 "  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
@@ -2854,7 +4103,7 @@ msgstr ""
 "\n"
 "  -S, --symlink=ESPEC    cria link simbólicos para o perfil conforme ESPEC"
 
-#: guix/scripts/pack.scm:654
+#: guix/scripts/pack.scm:916
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a pack with the manifest from FILE"
@@ -2862,7 +4111,17 @@ msgstr ""
 "\n"
 "  -m, --manifest=ARQUIVO cria um pacote com o manifesto do ARQUIVO"
 
-#: guix/scripts/pack.scm:656
+#: guix/scripts/pack.scm:918
+msgid ""
+"\n"
+"      --entry-point=PROGRAM\n"
+"                         use PROGRAM as the entry point of the pack"
+msgstr ""
+"\n"
+"      --entry-point=PROGRAMA\n"
+"                         usa PROGRAMA como o ponto de entrada do pacote"
+
+#: guix/scripts/pack.scm:923
 msgid ""
 "\n"
 "      --localstatedir    include /var/guix in the resulting pack"
@@ -2870,7 +4129,25 @@ msgstr ""
 "\n"
 "      --localstatedir    inclui /var/guix no pacote resultante"
 
-#: guix/scripts/pack.scm:658
+#: guix/scripts/pack.scm:925
+msgid ""
+"\n"
+"      --profile-name=NAME\n"
+"                         populate /var/guix/profiles/.../NAME"
+msgstr ""
+"\n"
+"      --profile-name=NOME\n"
+"                         popula /var/guix/profiles/.../NOME"
+
+#: guix/scripts/pack.scm:931
+msgid ""
+"\n"
+"  -d, --derivation       return the derivation of the pack"
+msgstr ""
+"\n"
+"  -d, --derivation       retorna a derivação do pacote"
+
+#: guix/scripts/pack.scm:935
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap binaries to build the pack"
@@ -2879,99 +4156,118 @@ msgstr ""
 "      --bootstrap        usa os executáveis de inicialização para compilar\n"
 "                         o pacote"
 
-#: guix/scripts/pack.scm:700
+#: guix/scripts/pack.scm:986
+#, scheme-format
+msgid "could not determine provenance of package ~a~%"
+msgstr "não foi possível determinar a proveniência do pacote ~a~%"
+
+#: guix/scripts/pack.scm:995
 #, scheme-format
 msgid "both a manifest and a package list were given~%"
 msgstr "foram especificados um manifesto e uma lista de pacote~%"
 
-#: guix/scripts/pack.scm:743
+#: guix/scripts/pack.scm:1049
+#, scheme-format
+msgid "~a: unknown pack format~%"
+msgstr "~a: formato de pacote desconhecido~%"
+
+#: guix/scripts/pack.scm:1059
+#, scheme-format
+msgid "no packages specified; building an empty pack~%"
+msgstr "nenhum pacote especificado; compilando um pacote vazio~%"
+
+#: guix/scripts/pack.scm:1063
 #, scheme-format
-msgid "~a: unknown pack format"
-msgstr "~a: formato de pacote desconhecido"
+msgid "Singularity requires you to provide a shell~%"
+msgstr "Singularidade requer que você forneça um shell~%"
 
-#: guix/scripts/weather.scm:72
+#: guix/scripts/pack.scm:1064
+msgid "Add @code{bash} or @code{bash-minimal} to your package list."
+msgstr "Adiciona @code{bash} ou @code{bash-minimal} a sua lista de pacotes."
+
+#: guix/scripts/weather.scm:80
 msgid "computing ~h package derivations for ~a...~%"
 msgstr "computando ~h derivações de pacote para ~a...~%"
 
-#: guix/scripts/weather.scm:161
+#: guix/scripts/weather.scm:169
 msgid "looking for ~h store items on ~a...~%"
 msgstr "procurando por ~h itens de armazenamento em ~a…~%"
 
-#: guix/scripts/weather.scm:173
+#: guix/scripts/weather.scm:184
 msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
 msgstr "  ~2,1f% substitutos disponíveis (~h de ~h)~%"
 
-#: guix/scripts/weather.scm:179
+#: guix/scripts/weather.scm:190
 #, scheme-format
 msgid "  unknown substitute sizes~%"
 msgstr "  tamanhos de substituto desconhecido~%"
 
-#: guix/scripts/weather.scm:182
+#: guix/scripts/weather.scm:193
 msgid "  ~,1h MiB of nars (compressed)~%"
 msgstr "  ~,1h MiB de nars (comprimidos)~%"
 
-#: guix/scripts/weather.scm:183
+#: guix/scripts/weather.scm:194
 msgid "  at least ~,1h MiB of nars (compressed)~%"
 msgstr "  pelo menos ~,1h MiB de nars (comprimidos)~%"
 
-#: guix/scripts/weather.scm:185
+#: guix/scripts/weather.scm:196
 msgid "  ~,1h MiB on disk (uncompressed)~%"
 msgstr "  ~,1h MiB no disco (comprimidos)~%"
 
-#: guix/scripts/weather.scm:187
+#: guix/scripts/weather.scm:198
 msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
 msgstr "  ~,3h segundos por requisição (~,1h segundos no total)~%"
 
-#: guix/scripts/weather.scm:189
+#: guix/scripts/weather.scm:200
 msgid "  ~,1h requests per second~%"
 msgstr "  ~,1h requisições por segundo~%"
 
-#: guix/scripts/weather.scm:195
+#: guix/scripts/weather.scm:206
 #, scheme-format
 msgid "  (continuous integration information unavailable)~%"
 msgstr "  (informações de integração contínua indisponíveis)~%"
 
-#: guix/scripts/weather.scm:198
+#: guix/scripts/weather.scm:209
 #, scheme-format
 msgid "  '~a' returned ~a (~s)~%"
 msgstr "  \"~a\" retornou ~a (~s)~%"
 
-#: guix/scripts/weather.scm:215
+#: guix/scripts/weather.scm:226
 msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
 msgstr "  ~,1f% (~h de ~h) dos itens faltando estão enfileirados~%"
 
-#: guix/scripts/weather.scm:221
+#: guix/scripts/weather.scm:232
 msgid "  at least ~h queued builds~%"
 msgstr "  pelo menos ~h compilações enfileiradas~%"
 
-#: guix/scripts/weather.scm:222
+#: guix/scripts/weather.scm:233
 msgid "  ~h queued builds~%"
 msgstr "  ~h compilações enfileiradas~%"
 
-#: guix/scripts/weather.scm:225
+#: guix/scripts/weather.scm:236
 #, scheme-format
 msgid "      ~a: ~a (~0,1f%)~%"
 msgstr "      ~a: ~a (~0,1f%)~%"
 
-#: guix/scripts/weather.scm:231
+#: guix/scripts/weather.scm:242
 #, scheme-format
 msgid "  build rate: ~1,2f builds per hour~%"
 msgstr "  taxa de compilação: ~1,2f compilações por hora~%"
 
-#: guix/scripts/weather.scm:235
+#: guix/scripts/weather.scm:246
 #, scheme-format
 msgid "      ~a: ~,2f builds per hour~%"
 msgstr "      ~a: ~,2f compilações por hora~%"
 
-#: guix/scripts/weather.scm:247
+#: guix/scripts/weather.scm:258
 msgid ""
-"Usage: guix weather [OPTIONS]\n"
+"Usage: guix weather [OPTIONS] [PACKAGES ...]\n"
 "Report the availability of substitutes.\n"
 msgstr ""
-"Uso: guix weather [OPÇÕES]\n"
+"Uso: guix weather [OPÇÕES] [PACOTES ...]\n"
 "Relata a disponibilidade de substitutos.\n"
 
-#: guix/scripts/weather.scm:249
+#: guix/scripts/weather.scm:260
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
@@ -2981,7 +4277,7 @@ msgstr ""
 "      --substitute-urls=URLS\n"
 "                         verifica por substitutos disponíveis nas URLS"
 
-#: guix/scripts/weather.scm:252
+#: guix/scripts/weather.scm:263
 msgid ""
 "\n"
 "  -m, --manifest=MANIFEST\n"
@@ -2992,7 +4288,19 @@ msgstr ""
 "                         procura substitutos para os pacotes especificados\n"
 "                         no MANIFESTO"
 
-#: guix/scripts/weather.scm:255
+#: guix/scripts/weather.scm:266
+msgid ""
+"\n"
+"  -c, --coverage[=COUNT]\n"
+"                         show substitute coverage for packages with at least\n"
+"                         COUNT dependents"
+msgstr ""
+"\n"
+"  -c, --coverage[=NÚMERO]\n"
+"                         mostra cobertura substituta para pacotes com\n"
+"                         pelo menos NÚMERO dependentes"
+
+#: guix/scripts/weather.scm:270
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
@@ -3000,32 +4308,163 @@ msgstr ""
 "\n"
 "  -s, --system=SISTEMA   considera substitutos para SISTEMA--ex.: \"i686-linux\""
 
-#: guix/scripts/weather.scm:279
+#: guix/scripts/weather.scm:294
 #, scheme-format
 msgid "~a: invalid URL~%"
 msgstr "~a: URL inválido~%"
 
-#: guix/gnu-maintenance.scm:570
+#: guix/scripts/weather.scm:423
+#, scheme-format
+msgid "The following ~a package is missing from '~a' for '~a':~%"
+msgid_plural "The following ~a packages are missing from '~a' for '~a':~%"
+msgstr[0] "O ~a pacote a seguir está faltando em \"~a\" para \"~a\":~%"
+msgstr[1] "Os ~a pacotes a seguir estão faltando em \"~a\" para \"~a\":~%"
+
+#: guix/scripts/weather.scm:429
+#, scheme-format
+msgid "~a package is missing from '~a' for '~a':~%"
+msgid_plural "~a packages are missing from '~a' for '~a', among which:~%"
+msgstr[0] "~a pacote a seguir está faltando em \"~a\" para \"~a\":~%"
+msgstr[1] "~a pacotes a seguir estão faltando em \"~a\" para \"~a\":~%"
+
+#: guix/scripts/describe.scm:50
+#, scheme-format
+msgid "~a: unsupported output format~%"
+msgstr "~a: sem suporte ao formato de saída~%"
+
+#: guix/scripts/describe.scm:69
+msgid ""
+"Usage: guix describe [OPTION]...\n"
+"Display information about the channels currently in use.\n"
+msgstr ""
+"Uso: guix describe [OPÇÃO]...\n"
+"Exibe informações sobre os canais atualmente em uso.\n"
+
+#: guix/scripts/describe.scm:71
+msgid ""
+"\n"
+"  -f, --format=FORMAT    display information in the given FORMAT"
+msgstr ""
+"\n"
+"  -f, --format=FORMATO   exibe informações no FORMATO dado"
+
+#: guix/scripts/describe.scm:73
+msgid ""
+"\n"
+"  -p, --profile=PROFILE  display information about PROFILE"
+msgstr ""
+"\n"
+"  -p, --profile=PERFIL   exibe informações sobre o PERFIL"
+
+#: guix/scripts/describe.scm:92
+#, scheme-format
+msgid "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%"
+msgstr "~%;; aviso: GUIX_PACKAGE_PATH=\"~a\"~%"
+
+#: guix/scripts/describe.scm:95
+#, scheme-format
+msgid "'GUIX_PACKAGE_PATH' is set but it is not captured~%"
+msgstr "\"GUIX_PACKAGE_PATH\" está definida, mas não foi capturada~%"
+
+#: guix/scripts/describe.scm:122
+#, scheme-format
+msgid "failed to determine origin~%"
+msgstr "falha ao determinar a origem~%"
+
+#: guix/scripts/describe.scm:123
+#, scheme-format
+msgid ""
+"Perhaps this\n"
+"@command{guix} command was not obtained with @command{guix pull}?  Its version\n"
+"string is ~a.~%"
+msgstr ""
+"Talvez este comando\n"
+"@command{guix} não tenha sido obtido com @command{guix pull}? Sua string\n"
+"de versão é ~a.~%"
+
+#: guix/scripts/describe.scm:133
+#, scheme-format
+msgid "Git checkout:~%"
+msgstr "Git checkout:~%"
+
+#: guix/scripts/describe.scm:134
+#, scheme-format
+msgid "  repository: ~a~%"
+msgstr "  repositório: ~a~%"
+
+#: guix/scripts/describe.scm:135
+#, scheme-format
+msgid "  branch: ~a~%"
+msgstr "  ramo: ~a~%"
+
+#: guix/scripts/describe.scm:136
+#, scheme-format
+msgid "  commit: ~a~%"
+msgstr "  commit: ~a~%"
+
+#: guix/scripts/describe.scm:198
+#, scheme-format
+msgid "    repository URL: ~a~%"
+msgstr "    URL do repositório: ~a~%"
+
+#: guix/scripts/describe.scm:200
+#, scheme-format
+msgid "    branch: ~a~%"
+msgstr "    ramo: ~a~%"
+
+#: guix/scripts/describe.scm:201
+#, scheme-format
+msgid "    commit: ~a~%"
+msgstr "    commit: ~a~%"
+
+#: guix/scripts/processes.scm:211
+msgid ""
+"Usage: guix processes\n"
+"List the current Guix sessions and their processes."
+msgstr ""
+"Uso: guix processes\n"
+"Lista as sessões atuais do Guix e seus processos."
+
+#: guix/scripts/deploy.scm:47
+msgid ""
+"Usage: guix deploy [OPTION] FILE...\n"
+"Perform the deployment specified by FILE.\n"
+msgstr ""
+"Uso: guix deploy [OPÇÃO] ARQUIVO...\n"
+"Realiza a implantação especificada por ARQUIVO.\n"
+
+#: guix/scripts/deploy.scm:112
+#, scheme-format
+msgid "deploying to ~a...~%"
+msgstr "implantando em ~a...~%"
+
+#: guix/scripts/deploy.scm:116
+#, scheme-format
+msgid "failed to deploy ~a: ~a~%"
+msgstr "falha ao implantar ~a: ~a~%"
+
+#: guix/scripts/deploy.scm:121
+#, scheme-format
+msgid "rolling back ~a...~%"
+msgstr "revertendo ~a...~%"
+
+#: guix/gnu-maintenance.scm:647
 msgid "Updater for GNU packages"
 msgstr "Atualizador para pacotes GNU"
 
-#: guix/gnu-maintenance.scm:579
+#: guix/gnu-maintenance.scm:656
 msgid "Updater for GNU packages only available via FTP"
 msgstr "Atualizador para pacotes GNU só disponíveis via FTP"
 
-#: guix/gnu-maintenance.scm:588
-msgid "Updater for KDE packages"
-msgstr "Atualizador para pacotes KDE"
-
-#: guix/gnu-maintenance.scm:595
+#: guix/gnu-maintenance.scm:665
 msgid "Updater for X.org packages"
 msgstr "Atualizador para pacotes X.org"
 
-#: guix/gnu-maintenance.scm:602
+#: guix/gnu-maintenance.scm:672
 msgid "Updater for packages hosted on kernel.org"
 msgstr "Atualizador para pacotes hospedados no kernel.org"
 
-#: guix/scripts/container.scm:25
+#: guix/scripts/container.scm:26
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
@@ -3033,16 +4472,16 @@ msgstr ""
 "Uso: guix container AÇÃO ARGUMENTOS...\n"
 "Compila e manipula contêineres Linux.\n"
 
-#: guix/scripts/container.scm:30
+#: guix/scripts/container.scm:31
 msgid "   exec            execute a command inside of an existing container\n"
 msgstr "   exec            executa comando dentro de um contêiner existente\n"
 
-#: guix/scripts/container.scm:53
+#: guix/scripts/container.scm:54
 #, scheme-format
 msgid "guix container: missing action~%"
 msgstr "guix container: faltando uma ação~%"
 
-#: guix/scripts/container.scm:63
+#: guix/scripts/container.scm:64
 #, scheme-format
 msgid "guix container: invalid action~%"
 msgstr "guix container: ação inválida~%"
@@ -3050,7 +4489,7 @@ msgstr "guix container: ação inválida~%"
 #: guix/scripts/container/exec.scm:40
 msgid ""
 "Usage: guix container exec PID COMMAND [ARGS...]\n"
-"Execute COMMMAND within the container process PID.\n"
+"Execute COMMAND within the container process PID.\n"
 msgstr ""
 "Uso: guix container exec PID COMANDO [ARGUMENTOS...]\n"
 "Executa COMANDO dentro do contêiner de processo PID.\n"
@@ -3080,101 +4519,144 @@ msgstr "processo inexistente ~d~%"
 msgid "exec failed with status ~d~%"
 msgstr "execução falhou com status ~d~%"
 
-#: guix/upstream.scm:250
+#: guix/upstream.scm:328
+#, scheme-format
+msgid "signature verification failed for '~a' (key: ~a)~%"
+msgstr "verificação de assinatura falhou para \"~a\" (chave: ~a)~%"
+
+#: guix/upstream.scm:332
 #, scheme-format
-msgid "signature verification failed for `~a'~%"
-msgstr "verificação de assinatura falhou para \"~a\"~%"
+msgid "missing public key ~a for '~a'~%"
+msgstr "faltando chave pública ~a para \"~a\"~%"
 
-#: guix/upstream.scm:252
+#: guix/upstream.scm:408
 #, scheme-format
-msgid "(could be because the public key is not in your keyring)~%"
-msgstr "(pode ser porque a chave pública não está no seu chaveiro)~%"
+msgid "cannot download for this method: ~s"
+msgstr "não foi possível baixar por este método: ~s"
 
-#: guix/upstream.scm:337
+#: guix/upstream.scm:471
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: não foi possível localizar um arquivo fonte"
 
-#: guix/upstream.scm:342
+#: guix/upstream.scm:476
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
 msgstr "~a: ~a: sem o campo \"version\" no fonte; ignorando~%"
 
-#: guix/ui.scm:169
+#: guix/ui.scm:154
 #, scheme-format
 msgid "error: ~a: unbound variable"
 msgstr "erro: ~a: variável não vinculada"
 
-#: guix/ui.scm:265
+#: guix/ui.scm:254
 msgid "entering debugger; type ',bt' for a backtrace\n"
 msgstr "entrando no depurador; digite \",bt\" para o \"backtrace\"\n"
 
-#: guix/ui.scm:314
-#, scheme-format
-msgid "hint: ~a~%"
-msgstr "dica: ~a~%"
+#: guix/ui.scm:311
+msgid "hint: "
+msgstr "dica: "
 
-#: guix/ui.scm:330
+#: guix/ui.scm:328
 msgid "Did you forget a @code{use-modules} form?"
 msgstr "Você se esqueceu de uma forma @code{use-modules}?"
 
-#: guix/ui.scm:332
+#: guix/ui.scm:330
 #, scheme-format
 msgid "Did you forget @code{(use-modules ~a)}?"
 msgstr "Você se esqueceu de @code{(use-modules ~a)}?"
 
-#: guix/ui.scm:341 guix/ui.scm:381 guix/ui.scm:388
+#: guix/ui.scm:340
+#, scheme-format
+msgid ""
+"File @file{~a} should probably start with:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+msgstr ""
+"O arquivo @file{~a} deve provavelmente iniciar com:\n"
+"\n"
+"@example\n"
+"(define-module ~a)\n"
+"@end example"
+
+#: guix/ui.scm:354
+#, scheme-format
+msgid "module name ~a does not match file name '~a'~%"
+msgstr "o nome do módulo \"~a\" não corresponde a um nome de arquivo \"~a\"~%"
+
+#: guix/ui.scm:358
+#, scheme-format
+msgid "~a: file is empty~%"
+msgstr "~a: arquivo está vazio~%"
+
+#: guix/ui.scm:369 guix/ui.scm:411 guix/ui.scm:419
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "falha ao carregar \"~a\": ~a~%"
 
-#: guix/ui.scm:348
+#: guix/ui.scm:376
 #, scheme-format
 msgid "~amissing closing parenthesis~%"
 msgstr "~afaltando parêntese de fechamento~%"
 
-#: guix/ui.scm:353 guix/ui.scm:361 guix/ui.scm:692
+#: guix/ui.scm:381
 #, scheme-format
-msgid "~a: error: ~a~%"
-msgstr "~a: erro: ~a~%"
+msgid "~s: ~a~%"
+msgstr "~s: ~a~%"
 
-#: guix/ui.scm:368 guix/ui.scm:762
+#: guix/ui.scm:391 guix/ui.scm:842
 #, scheme-format
 msgid "exception thrown: ~s~%"
 msgstr "excepção lançada: ~s~%"
 
-#: guix/ui.scm:372 guix/ui.scm:394
+#: guix/ui.scm:395 guix/ui.scm:425
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "falha ao carregar \"~a\":~%"
 
-#: guix/ui.scm:384
-#, scheme-format
-msgid "~a: warning: ~a~%"
-msgstr "~a: aviso: ~a~%"
-
-#: guix/ui.scm:391
+#: guix/ui.scm:422
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
 msgstr "falha ao carregar \"~a\": exceção lançada: ~s~%"
 
-#: guix/ui.scm:424
-#, scheme-format
-msgid "failed to install locale: ~a~%"
-msgstr "falha ao instalar localidade: ~a~%"
+#: guix/ui.scm:470
+msgid ""
+"Consider installing the @code{glibc-utf8-locales} or\n"
+"@code{glibc-locales} package and defining @code{GUIX_LOCPATH}, along these\n"
+"lines:\n"
+"\n"
+"@example\n"
+"guix package -i glibc-utf8-locales\n"
+"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+"@end example\n"
+"\n"
+"See the \"Application Setup\" section in the manual, for more info.\n"
+msgstr ""
+"Considere instalar o pacote @code{glibc-utf8-locales} ou\n"
+"@code{glibc-locales} e definir @code{GUIX_LOCPATH}, junto\n"
+"com essas linhas:\n"
+"\n"
+"@example\n"
+"guix package -i glibc-utf8-locales\n"
+"export GUIX_LOCPATH=\"$HOME/.guix-profile/lib/locale\"\n"
+"@end example\n"
+"\n"
+"Veja a seção \"Application Setup\" no manual, para mais informações.\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
 #. locale.  Otherwise, do not translate "(C)"; leave it as-is.  */
-#: guix/ui.scm:454
+#: guix/ui.scm:508
 msgid "(C)"
 msgstr "(C)"
 
-#: guix/ui.scm:455
+#: guix/ui.scm:509
 msgid "the Guix authors\n"
 msgstr "os autores do Guix\n"
 
-#: guix/ui.scm:456
+#: guix/ui.scm:510
 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"
@@ -3188,7 +4670,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:468
+#: guix/ui.scm:522
 #, scheme-format
 msgid ""
 "\n"
@@ -3196,9 +4678,9 @@ msgid ""
 msgstr ""
 "\n"
 "Relate erros para: ~a.\n"
-"Relate erros de tradução para: ldpbr-translation@lists.sourceforge.net."
+"Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>"
 
-#: guix/ui.scm:470
+#: guix/ui.scm:524
 #, scheme-format
 msgid ""
 "\n"
@@ -3207,7 +4689,7 @@ msgstr ""
 "\n"
 "Site do ~a: <~a>"
 
-#: guix/ui.scm:472
+#: guix/ui.scm:526
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -3215,27 +4697,27 @@ msgstr ""
 "\n"
 "Ajuda em geral usando softwares GNU: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:517
+#: guix/ui.scm:581
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "\"~a\" não é uma expressão regular válida: ~a~%"
 
-#: guix/ui.scm:523
+#: guix/ui.scm:587
 #, scheme-format
 msgid "~a: invalid number~%"
 msgstr "~a: número inválido~%"
 
-#: guix/ui.scm:540
+#: guix/ui.scm:604
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "número inválido: ~a~%"
 
-#: guix/ui.scm:563
+#: guix/ui.scm:627
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "unidade desconhecida: ~a~%"
 
-#: guix/ui.scm:578
+#: guix/ui.scm:642
 #, scheme-format
 msgid ""
 "You cannot have two different versions\n"
@@ -3244,7 +4726,7 @@ msgstr ""
 "Você não pode ter duas versões diferentes\n"
 "ou variantes de @code{~a} no mesmo perfil."
 
-#: guix/ui.scm:581
+#: guix/ui.scm:645
 #, scheme-format
 msgid ""
 "Try upgrading both @code{~a} and @code{~a},\n"
@@ -3253,116 +4735,111 @@ msgstr ""
 "Tente atualizar ambos @code{~a} e @code{~a},\n"
 "ou remover um deles do perfil."
 
-#: guix/ui.scm:600
+#: guix/ui.scm:664
 #, scheme-format
 msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
 msgstr "~a:~a:~a: o pacote \"~a\" tem uma entrada inválida: ~s~%"
 
-#: guix/ui.scm:607
+#: guix/ui.scm:671
 #, scheme-format
 msgid "~a: ~a: build system `~a' does not support cross builds~%"
 msgstr "~a: ~a: o sistema de compilação de \"~a\" não oferece suporte a compilações cruzadas~%"
 
-#: guix/ui.scm:613
+#: guix/ui.scm:677
 #, scheme-format
 msgid "~s: invalid G-expression input~%"
 msgstr "~s: entrada de expressão G inválida~%"
 
-#: guix/ui.scm:616
+#: guix/ui.scm:680
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "o perfil \"~a\" não existe~%"
 
-#: guix/ui.scm:619
+#: guix/ui.scm:683
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "a geração ~a do perfil \"~a\" não existe~%"
 
-#: guix/ui.scm:628
+#: guix/ui.scm:688
+#, scheme-format
+msgid "package '~a~@[@~a~]~@[:~a~]' not found in profile~%"
+msgstr "pacote '~a~@[@~a~]~@[:~a~]' não localizado no perfil~%"
+
+#: guix/ui.scm:700
 #, scheme-format
 msgid "   ... propagated from ~a@~a~%"
 msgstr "   ... propagado de ~a@~a~%"
 
-#: guix/ui.scm:638
+#: guix/ui.scm:710
 #, scheme-format
 msgid "profile contains conflicting entries for ~a~a~%"
 msgstr "o perfil contém entradas conflitantes para ~a~a~%"
 
-#: guix/ui.scm:641
+#: guix/ui.scm:713
 #, scheme-format
 msgid "  first entry: ~a@~a~a ~a~%"
 msgstr "  primeira entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:647
+#: guix/ui.scm:719
 #, scheme-format
 msgid "  second entry: ~a@~a~a ~a~%"
 msgstr "  segunda entrada: ~a@~a~a ~a~%"
 
-#: guix/ui.scm:659
+#: guix/ui.scm:731
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "entrada corrompida ao restaurar \"~a\" de ~s~%"
 
-#: guix/ui.scm:661
+#: guix/ui.scm:733
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "entrada corrompida ao restaurar um pacote de ~s~%"
 
-#: guix/ui.scm:664
+#: guix/ui.scm:736
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "falha ao conectar em \"~a\": ~a~%"
 
-#: guix/ui.scm:669
-#, scheme-format
-msgid "build failed: ~a~%"
-msgstr "compilação falhou: ~a~%"
-
-#: guix/ui.scm:672
+#: guix/ui.scm:744
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
 msgstr "referência a uma saída inválida \"~a\" da derivação \"~a\"~%"
 
-#: guix/ui.scm:676
+#: guix/ui.scm:748
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "o arquivo \"~a\" não pôde ser localizado nesses diretórios:~{ ~a~}~%"
 
-#: guix/ui.scm:681
+#: guix/ui.scm:753
 #, scheme-format
 msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
 msgstr "programa saiu~@[ com status de saída não zero ~a~]~@[ terminado por sinal ~a~]~@[ parado por sinal ~a~]: ~s~%"
 
-#: guix/ui.scm:712
-#, scheme-format
-msgid "~a: ~a~%"
-msgstr "~a: ~a~%"
-
-#: guix/ui.scm:747
+#: guix/ui.scm:827
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "falha ao ler a expressão ~s: ~s~%"
 
-#: guix/ui.scm:753
+#: guix/ui.scm:833
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "falha ao avaliar a expressão \"~a\":~%"
 
-#: guix/ui.scm:756
+#: guix/ui.scm:836
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "erro de sintaxe: ~a~%"
 
-#: guix/ui.scm:774
+#: guix/ui.scm:854
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "a expressão ~s não corresponde a um pacote~%"
 
-#: guix/ui.scm:793
+#: guix/ui.scm:881
 msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
 msgstr "pelo menos ~,1h MB necessário, mas apenas ~,1h MB disponível em ~a~%"
 
-#: guix/ui.scm:861
+#: guix/ui.scm:977
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
@@ -3371,18 +4848,32 @@ msgstr[1] "~:[As seguintes derivações seriam compiladas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:869
+#: guix/ui.scm:985
 msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB seria baixado:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:874
+#: guix/ui.scm:991
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte arquivo seria baixado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes arquivos seriam baixados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:881
+#: guix/ui.scm:998
+#, scheme-format
+msgid "~:[The following graft would be made:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following grafts would be made:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[O seguinte enxerto seria feito:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Os seguintes enxertos seriam feitos:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1003
+#, scheme-format
+msgid "~:[The following profile hook would be built:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following profile hooks would be built:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[O seguinte gancho de perfil seria compilado:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Os seguintes ganchos de perfil seriam compilados:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1009
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
@@ -3391,78 +4882,98 @@ msgstr[1] "~:[As seguintes derivações serão compiladas:~%~{   ~a~%~}~;~]"
 
 #. TRANSLATORS: "MB" is for "megabyte"; it should be
 #. translated to the corresponding abbreviation.
-#: guix/ui.scm:889
+#: guix/ui.scm:1017
 msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr "~:[~,1h MB será baixado:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:894
+#: guix/ui.scm:1023
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[O seguinte arquivo será baixado:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Os seguintes arquivos serão baixados:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:954
+#: guix/ui.scm:1030
+#, scheme-format
+msgid "~:[The following graft will be made:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following grafts will be made:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[O seguinte enxerto será feito:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Os seguintes enxertos serão feitos:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1035
+#, scheme-format
+msgid "~:[The following profile hook will be built:~%~{   ~a~%~}~;~]"
+msgid_plural "~:[The following profile hooks will be built:~%~{   ~a~%~}~;~]"
+msgstr[0] "~:[O seguinte gancho de perfil será compilado:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Os seguintes ganchos de perfil serão compilados:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:1094
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria removido:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam removidos:~%~{~a~%~}~%"
 
-#: guix/ui.scm:959
+#: guix/ui.scm:1099
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será removido:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão removidos:~%~{~a~%~}~%"
 
-#: guix/ui.scm:972
+#: guix/ui.scm:1112
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote sofreria um downgrade:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes sofreriam um downgrade:~%~{~a~%~}~%"
 
-#: guix/ui.scm:977
+#: guix/ui.scm:1117
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote sofrerá um downgrade:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes sofrerão um downgrade:~%~{~a~%~}~%"
 
-#: guix/ui.scm:990
+#: guix/ui.scm:1130
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria atualizado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam atualizados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:995
+#: guix/ui.scm:1135
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será atualizado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão atualizados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1006
+#: guix/ui.scm:1146
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote seria instalado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes seriam instalados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1011
+#: guix/ui.scm:1151
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "O seguinte pacote será instalado:~%~{~a~%~}~%"
 msgstr[1] "Os seguintes pacotes serão instalados:~%~{~a~%~}~%"
 
-#: guix/ui.scm:1028
-msgid "<unknown location>"
-msgstr "<local desconhecido>"
+#: guix/ui.scm:1480
+#, scheme-format
+msgid "Run @code{~a ... | less} to view all the results."
+msgstr "Execute @code{~a ... | less} para ver todos os resultados."
+
+#: guix/ui.scm:1630
+#, scheme-format
+msgid "invalid syntax: ~a~%"
+msgstr "sintaxe inválida: ~a~%"
 
-#: guix/ui.scm:1390
+#: guix/ui.scm:1640
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Geração ~a\t~a"
@@ -3472,7 +4983,7 @@ msgstr "Geração ~a\t~a"
 #. usual way of presenting dates in your locale.
 #. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
 #. for details.
-#: guix/ui.scm:1399
+#: guix/ui.scm:1650
 #, scheme-format
 msgid "~b ~d ~Y ~T"
 msgstr "~d ~b ~Y ~T"
@@ -3480,28 +4991,38 @@ msgstr "~d ~b ~Y ~T"
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1405
+#: guix/ui.scm:1656
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(atual)~%"
 
+#: guix/ui.scm:1690
+#, scheme-format
+msgid "cannot lock profile ~a: ~a~%"
+msgstr "não foi possível bloquear o perfil ~a: ~a~%"
+
+#: guix/ui.scm:1692
+#, scheme-format
+msgid "profile ~a is locked by another process~%"
+msgstr "o perfil ~a está bloqueado por outro processo~%"
+
 # geração, criação?
-#: guix/ui.scm:1448
+#: guix/ui.scm:1719
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "trocado da geração ~a para ~a~%"
 
-#: guix/ui.scm:1464
+#: guix/ui.scm:1735
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "excluindo ~a~%"
 
-#: guix/ui.scm:1495
+#: guix/ui.scm:1766
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Tente \"guix --help\" para mais informações.~%"
 
-#: guix/ui.scm:1523
+#: guix/ui.scm:1794
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -3509,77 +5030,325 @@ msgstr ""
 "Uso: guix COMANDO ARGUMENTOS...\n"
 "Executa COMANDO com ARGUMENTOS.\n"
 
-#: guix/ui.scm:1526
+#: guix/ui.scm:1797
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "COMANDO deve ser um dos subcomandos listados abaixo:\n"
 
-#: guix/ui.scm:1546
+#: guix/ui.scm:1813
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: comando não encontrado~%"
 
-#: guix/ui.scm:1576
+#: guix/ui.scm:1843
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: faltando um nome de comando~%"
 
-#: guix/ui.scm:1584
+#: guix/ui.scm:1851
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
 msgstr "guix: opção \"~a\" desconhecida~%"
 
-#: guix/http-client.scm:117
+#. TRANSLATORS: The word "phase" here denotes a "build phase";
+#. "~a" is a placeholder for the untranslated name of the current
+#. build phase--e.g., 'configure' or 'build'.
+#: guix/status.scm:358
+#, scheme-format
+msgid "'~a' phase"
+msgstr "fase '~a'"
+
+#: guix/status.scm:378
+msgid "building directory of Info manuals..."
+msgstr "compilando diretório de manuais Info..."
+
+#: guix/status.scm:380
+msgid "building GHC package cache..."
+msgstr "compilando cache de pacotes de GHC..."
+
+#: guix/status.scm:382
+msgid "building CA certificate bundle..."
+msgstr "compilando pacote de certificados de AC..."
+
+#: guix/status.scm:384
+msgid "generating GLib schema cache..."
+msgstr "gerando cache de esquemas de GLib..."
+
+#: guix/status.scm:386
+msgid "creating GTK+ icon theme cache..."
+msgstr "criando cache de tema de ícones de GTK..."
+
+#: guix/status.scm:388
+msgid "building cache files for GTK+ input methods..."
+msgstr "compilando arquivos de cache para métodos de entrada de GTK..."
+
+#: guix/status.scm:390
+msgid "building XDG desktop file cache..."
+msgstr "compilando cache de arquivos desktop XDG..."
+
+#: guix/status.scm:392
+msgid "building XDG MIME database..."
+msgstr "compilando banco de dados XDG MIME..."
+
+#: guix/status.scm:394
+msgid "building fonts directory..."
+msgstr "compilando diretório de fontes..."
+
+#: guix/status.scm:396
+msgid "building TeX Live configuration..."
+msgstr "compilando configuração de TeX Live..."
+
+#: guix/status.scm:398
+msgid "building database for manual pages..."
+msgstr "compilando banco de dados para páginas de manual..."
+
+#: guix/status.scm:400
+msgid "building package cache..."
+msgstr "compilando cache de pacotes..."
+
+#: guix/status.scm:475
+#, scheme-format
+msgid "applying ~a graft for ~a..."
+msgid_plural "applying ~a grafts for ~a..."
+msgstr[0] "aplicando enxerto ~a para ~a..."
+msgstr[1] "aplicando enxertos ~a para ~a..."
+
+#: guix/status.scm:484
+#, scheme-format
+msgid "running profile hook of type '~a'..."
+msgstr "executando gancho de perfil do tipo \"~a\"..."
+
+#: guix/status.scm:487
+#, scheme-format
+msgid "building ~a..."
+msgstr "compilando ~a..."
+
+#: guix/status.scm:492
+#, scheme-format
+msgid "successfully built ~a"
+msgstr "~a compilado com sucesso"
+
+#: guix/status.scm:498
+#, scheme-format
+msgid "The following build is still in progress:~%~{  ~a~%~}~%"
+msgid_plural "The following builds are still in progress:~%~{  ~a~%~}~%"
+msgstr[0] "A seguinte compilação ainda está em progresso:~%~{  ~a~%~}~%"
+msgstr[1] "As seguintes compilações ainda estão em progresso:~%~{  ~a~%~}~%"
+
+#: guix/status.scm:504
+#, scheme-format
+msgid "build of ~a failed"
+msgstr "a compilação de ~a falhou"
+
+#: guix/status.scm:508
+#, scheme-format
+msgid "Could not find build log for '~a'."
+msgstr "Não foi possível localização o log de compilação para \"~a\"."
+
+#: guix/status.scm:511
+#, scheme-format
+msgid "View build log at '~a'."
+msgstr "Veja o log de compilação em \"~a\"."
+
+#: guix/status.scm:516
+#, scheme-format
+msgid "substituting ~a..."
+msgstr "substituindo ~a..."
+
+#: guix/status.scm:520
+#, scheme-format
+msgid "downloading from ~a..."
+msgstr "baixando de ~a..."
+
+#: guix/status.scm:545
+#, scheme-format
+msgid "substitution of ~a complete"
+msgstr "substituição de ~a concluída"
+
+#: guix/status.scm:548
+#, scheme-format
+msgid "substitution of ~a failed"
+msgstr "substituição de ~a falhou"
+
+#. TRANSLATORS: The final string looks like "sha256 hash mismatch for
+#. /gnu/store/…-sth:", where "sha256" is the hash algorithm.
+#: guix/status.scm:553
+#, scheme-format
+msgid "~a hash mismatch for ~a:"
+msgstr "hash ~a incompatível para ~a:"
+
+#: guix/status.scm:555
+#, scheme-format
+msgid ""
+"  expected hash: ~a\n"
+"  actual hash:   ~a~%"
+msgstr ""
+"  hash esperada: ~a\n"
+"  hash atual:    ~a~%"
+
+#: guix/status.scm:560
+#, scheme-format
+msgid "offloading build of ~a to '~a'"
+msgstr "descarregando compilação de ~a para \"~a\""
+
+#: guix/http-client.scm:120
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "seguindo redirecionamento para \"~a\"...~%"
 
-#: guix/http-client.scm:129
+#: guix/http-client.scm:132
 #, scheme-format
 msgid "~a: HTTP download failed: ~a (~s)"
 msgstr "~a: download HTTP falhou: ~a (~s)"
 
-#: guix/nar.scm:156
+#: guix/nar.scm:147
 msgid "signature is not a valid s-expression"
 msgstr "a assinatura não é uma expressão-s válida"
 
-#: guix/nar.scm:165
+#: guix/nar.scm:156
 msgid "invalid signature"
 msgstr "assinatura inválida"
 
-#: guix/nar.scm:169
+#: guix/nar.scm:160
 msgid "invalid hash"
 msgstr "hash inválido"
 
-#: guix/nar.scm:177
+#: guix/nar.scm:168
 msgid "unauthorized public key"
 msgstr "chave pública não autorizada"
 
-#: guix/nar.scm:182
+#: guix/nar.scm:173
 msgid "corrupt signature data"
 msgstr "dados de assinatura corrompidos"
 
-#: guix/nar.scm:202
+#: guix/nar.scm:193
 msgid "corrupt file set archive"
 msgstr "pacote de conjunto de arquivos corrompido"
 
-#: guix/nar.scm:212
+#: guix/nar.scm:203
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "importando arquivo ou diretório \"~a\"...~%"
 
-#: guix/nar.scm:223
+#: guix/nar.scm:214
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "localizada assinatura válida para \"~a\"~%"
 
-#: guix/nar.scm:230
+#: guix/nar.scm:221
 msgid "imported file lacks a signature"
 msgstr "arquivo importado carece de uma assinatura"
 
-#: guix/nar.scm:269
+#: guix/nar.scm:260
 msgid "invalid inter-file archive mark"
 msgstr "marca inválida de pacote interarquivo"
 
+#: guix/channels.scm:168
+msgid "unsupported '.guix-channel' version"
+msgstr "sem suporte à versão de \".guix-channel\""
+
+#: guix/channels.scm:174
+msgid "invalid '.guix-channel' file"
+msgstr "arquivo \".guix-channel\" inválido"
+
+#: guix/channels.scm:224
+#, scheme-format
+msgid "Updating channel '~a' from Git repository at '~a'...~%"
+msgstr "Atualizando canal \"~a\" a partir do repositório Git \"~a\"...~%"
+
+#: guix/channels.scm:460
+msgid "'guix' channel is lacking"
+msgstr "o canal \"guix\" está faltando"
+
+#: guix/channels.scm:462
+msgid ""
+"Make sure your list of channels\n"
+"contains one channel named @code{guix} providing the core of Guix."
+msgstr ""
+"Verifique se a sua lista de canais\n"
+"contém um canal chamado @code{guix}, que fornece o núcleo do Guix."
+
+#: guix/channels.scm:664
+msgid "invalid channel news entry"
+msgstr "entrada de novidades de canal inválida"
+
+#: guix/channels.scm:682
+msgid "syntactically invalid channel news file"
+msgstr "arquivo de novidades de canal sintaticamente inválido"
+
+#: guix/channels.scm:685
+msgid "invalid channel news file"
+msgstr "arquivo de novidades de canal inválido"
+
+#: guix/profiles.scm:515
+msgid "unsupported manifest format"
+msgstr "sem suporte ao formato de manifesto"
+
+#: guix/profiles.scm:1767
+#, scheme-format
+msgid "while creating directory `~a': ~a"
+msgstr "ao criar diretório \"~a\": ~a"
+
+#: guix/profiles.scm:1772
+#, scheme-format
+msgid "Please create the @file{~a} directory, with you as the owner."
+msgstr "Por favor, crie o diretório @file{~a}, com você sendo o proprietário."
+
+#: guix/profiles.scm:1781
+#, scheme-format
+msgid "directory `~a' is not owned by you"
+msgstr "diretório \"~a\" não tem você como proprietário"
+
+#: guix/profiles.scm:1785
+#, scheme-format
+msgid "Please change the owner of @file{~a} to user ~s."
+msgstr "Por favor, altere o proprietário d @file{~a} para o usuário ~s."
+
+#: guix/git.scm:170
+msgid "long Git object ID is required"
+msgstr "Um ID longo de objeto Git é necessário"
+
+#: guix/git.scm:229
+#, scheme-format
+msgid "updating submodule '~a'...~%"
+msgstr "atualizando submódulo \"~a\"...~%"
+
+#: guix/git.scm:242
+#, scheme-format
+msgid "Support for submodules is missing; please upgrade Guile-Git.~%"
+msgstr "Suporte a submódulos está faltando; por favor, atualize Guile-Git.~%"
+
+#: guix/git.scm:441
+#, scheme-format
+msgid "cannot fetch commit ~a from ~a: ~a"
+msgstr "não foi possível obter o commit ~a de ~a: ~a"
+
+#: guix/git.scm:444
+#, scheme-format
+msgid "cannot fetch branch '~a' from ~a: ~a"
+msgstr "não foi possível obter o ramo \"~a\" de ~a: ~a"
+
+#: guix/git.scm:447
+#, scheme-format
+msgid "Git failure while fetching ~a: ~a"
+msgstr "falha no Git ao obter ~a: ~a"
+
+#: guix/deprecation.scm:37
+#, scheme-format
+msgid "'~a' is deprecated, use '~a' instead~%"
+msgstr "\"~a\" foi descontinuado, use \"~a\" em vez disso~%"
+
+#: guix/deprecation.scm:39
+#, scheme-format
+msgid "'~a' is deprecated~%"
+msgstr "'~a' foi descontinuado~%"
+
+#. TRANSLATORS: 'derivation' must not be translated; it refers to the
+#. 'derivation' procedure.
+#: guix/derivations.scm:743
+#, scheme-format
+msgid "in '~a': deprecated 'derivation' calling convention used~%"
+msgstr "em \"~a\": uso descontinuado de convenção de chamada de \"derivation\"~%"
+
 #: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
 msgstr "guix-daemon -- realiza compilações de derivação e acessos a armazenamento"
@@ -3652,64 +5421,173 @@ msgstr "URLS"
 msgid "use URLS as the default list of substitute providers"
 msgstr "usa URLS como lista padrão de fornecedores de substituto"
 
-#: nix/nix-daemon/guix-daemon.cc:117
-msgid "do not use the 'build hook'"
-msgstr "não usa o \"hook de compilação\""
+#: nix/nix-daemon/guix-daemon.cc:117 nix/nix-daemon/guix-daemon.cc:120
+msgid "do not attempt to offload builds"
+msgstr "não tenta descarregar compilações"
 
-#: nix/nix-daemon/guix-daemon.cc:119
+#: nix/nix-daemon/guix-daemon.cc:122
 msgid "cache build failures"
 msgstr "armazena em cache as falhas de compilação"
 
-#: nix/nix-daemon/guix-daemon.cc:121
+#: nix/nix-daemon/guix-daemon.cc:124
 msgid "build each derivation N times in a row"
 msgstr "compila cada derivação N vezes de uma vez"
 
-#: nix/nix-daemon/guix-daemon.cc:123
+#: nix/nix-daemon/guix-daemon.cc:126
 msgid "do not keep build logs"
 msgstr "não mantém logs de compilação"
 
-#: nix/nix-daemon/guix-daemon.cc:126
+#: nix/nix-daemon/guix-daemon.cc:129
 msgid "disable compression of the build logs"
 msgstr "desabilita compressão de logs de compilação"
 
-#: nix/nix-daemon/guix-daemon.cc:128
+#: nix/nix-daemon/guix-daemon.cc:131
 msgid "use the specified compression type for build logs"
 msgstr "usa o tipo de compressão especificado para logs de compilação"
 
-#: nix/nix-daemon/guix-daemon.cc:133
+#: nix/nix-daemon/guix-daemon.cc:136
 msgid "disable automatic file \"deduplication\" in the store"
 msgstr "desabilita \"deduplicação\" automática de arquivo no armazenamento"
 
-#: nix/nix-daemon/guix-daemon.cc:143
+#: nix/nix-daemon/guix-daemon.cc:146
 msgid "impersonate Linux 2.6"
 msgstr "personifica Linux 2.6"
 
-#: nix/nix-daemon/guix-daemon.cc:147
+#: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep outputs of live derivations"
 msgstr "diz se o GC deve manter as saídas das derivações vivas"
 
-#: nix/nix-daemon/guix-daemon.cc:150
+#: nix/nix-daemon/guix-daemon.cc:153
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
 msgstr "diz se o GC deve manter as derivações correspondentes às saídas vivas"
 
-#: nix/nix-daemon/guix-daemon.cc:153
+#: nix/nix-daemon/guix-daemon.cc:156
 msgid "SOCKET"
 msgstr "SOQUETE"
 
-#: nix/nix-daemon/guix-daemon.cc:154
+#: nix/nix-daemon/guix-daemon.cc:157
 msgid "listen for connections on SOCKET"
 msgstr "ouve conexões no SOQUETE"
 
-#: nix/nix-daemon/guix-daemon.cc:156
+#: nix/nix-daemon/guix-daemon.cc:159
 msgid "produce debugging output"
 msgstr "produz saída de depuração"
 
+#~ msgid "Hide"
+#~ msgstr "Ocultar"
+
+#~ msgid "The following environment variable definitions may be needed:~%"
+#~ msgstr "As seguintes definições de variável de ambiente podem ser necessárias:~%"
+
+#~ msgid "would install new manifest from '~a' with ~d entries~%"
+#~ msgstr "instalaria novo manifesto a partir de \"~a\" com entradas ~d~%"
+
+#~ msgid "installing new manifest from '~a' with ~d entries~%"
+#~ msgstr "instalando novo manifesto a partir de \"~a\" com entradas ~d~%"
+
+#~ msgid ""
+#~ "\n"
+#~ "      --verbose          produce verbose output"
+#~ msgstr ""
+#~ "\n"
+#~ "      --verbose          produz uma saída mais detalhada"
+
+#~ msgid "while fetching '~a': ~a (~s)~%"
+#~ msgstr "ao obter \"~a\": ~a (~s)~%"
+
+#~ msgid "ignoring substitute server at '~s'~%"
+#~ msgstr "ignorando servidor substituto em \"~s\"~%"
+
+#~ msgid "invalid signature for '~a'~%"
+#~ msgstr "assinatura inválida para \"~a\"~%"
+
+#~ msgid "hash mismatch for '~a'~%"
+#~ msgstr "hash incompatível para \"~a\"~%"
+
+#~ msgid "'~a' is signed with an unauthorized key~%"
+#~ msgstr "\"~a\" está assinado com uma chave não autorizada~%"
+
+#~ msgid "signature on '~a' is corrupt~%"
+#~ msgstr "a assinatura em \"~a\" está corrompida~%"
+
+#~ msgid "'~a' uses different store '~a'; ignoring it~%"
+#~ msgstr "\"~a\" usa um armazenamento diferente \"~a\"; ignorando-o~%"
+
+#~ msgid "failed to install bootloader ~a~%"
+#~ msgstr "falha ao instalar carregador de inicialização ~a~%"
+
+#~ msgid "unloading service '~a'...~%"
+#~ msgstr "descarregando serviço \"~a\"...~%"
+
+#~ msgid "loading new services:~{ ~a~}...~%"
+#~ msgstr "carregando novos serviços:~{ ~a~}...~%"
+
+#~ msgid ""
+#~ "To complete the upgrade, run 'herd restart SERVICE' to stop,\n"
+#~ "upgrade, and restart each service that was not automatically restarted.\n"
+#~ msgstr ""
+#~ "Para concluir a atualização, execute \"herd restart SERVIÇO\" para parar,\n"
+#~ "atualizar, reiniciar cada serviço que não foi reiniciado automaticamente.\n"
+
+#~ msgid "zlib support is missing; compression disabled~%"
+#~ msgstr "suporte a zlib está faltando; compressão desabilitada~%"
+
+#~ msgid "Updater for KDE packages"
+#~ msgstr "Atualizador para pacotes KDE"
+
+#~ msgid "(could be because the public key is not in your keyring)~%"
+#~ msgstr "(pode ser porque a chave pública não está no seu chaveiro)~%"
+
+#~ msgid "warning: "
+#~ msgstr "aviso: "
+
+#~ msgid "error: "
+#~ msgstr "erro: "
+
+#~ msgid "<unknown location>"
+#~ msgstr "<local desconhecido>"
+
+#~ msgid "do not use the 'build hook'"
+#~ msgstr "não usa o \"hook de compilação\""
+
+#~ msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
+#~ msgstr "Tente \"info '(guix) Invoking guix package'\" para mais informações.~%"
+
+#~ msgid ""
+#~ "Guile-Git is missing but it is now required by 'guix pull'.\n"
+#~ "Install it by running:\n"
+#~ "\n"
+#~ "  guix package -i ~a\n"
+#~ "  export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n"
+#~ "  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Guile-Git está faltando, mas agora é necessário por \"guix pull\".\n"
+#~ "Instale-o executando:\n"
+#~ "\n"
+#~ "  guix package -i ~a\n"
+#~ "  export GUILE_LOAD_PATH=$HOME/.guix-profile/share/guile/site/~a:$GUILE_LOAD_PATH\n"
+#~ "  export GUILE_LOAD_COMPILED_PATH=$HOME/.guix-profile/lib/guile/~a/site-ccache:$GUILE_LOAD_COMPILED_PATH\n"
+#~ "\n"
+
+#~ msgid "cannot enforce use of the Let's Encrypt certificates~%"
+#~ msgstr "não foi possível forçar o uso de certificados Let's Encrypt~%"
+
+#~ msgid "please upgrade Guile-Git~%"
+#~ msgstr "por favor, atualize o Guile-Git~%"
+
+#~ msgid "source location of package '~a' is unknown~%"
+#~ msgstr "localização fonte de pacote \"~a\" é desconhecida~%"
+
+#~ msgid "~a: error: ~a~%"
+#~ msgstr "~a: erro: ~a~%"
+
+#~ msgid "failed to install locale: ~a~%"
+#~ msgstr "falha ao instalar localidade: ~a~%"
+
 #~ msgid "Guix already up to date\n"
 #~ msgstr "Guix já está atualizado\n"
 
-#~ msgid "updated ~a successfully deployed under `~a'~%"
-#~ msgstr "~a atualizado foi implantado com sucesso sob \"~a\"~%"
-
 #~ msgid "failed to update Guix, check the build log~%"
 #~ msgstr "falha ao atualizar Guix; verifique o log de compilação~%"
 
@@ -3764,9 +5642,6 @@ msgstr "produz saída de depuração"
 #~ msgid "~a: no substitute at '~a'~%"
 #~ msgstr "~a: nenhum substituto em \"~a\"'~%"
 
-#~ msgid "Updater for GNOME packages"
-#~ msgstr "Atualizador para pacotes GNOME"
-
 #~ msgid "gz"
 #~ msgstr "gz"
 
@@ -3779,9 +5654,6 @@ msgstr "produz saída de depuração"
 #~ msgid "error: %s: invalid number of rounds\n"
 #~ msgstr "erro: %s: número inválido de vezes\n"
 
-#~ msgid "error: %s\n"
-#~ msgstr "erro: %s\n"
-
 #~ msgid "error: libgcrypt version mismatch\n"
 #~ msgstr "erro: versão do libgcrypt não confere\n"
 
diff --git a/tests/gem.scm b/tests/gem.scm
index 5158238d18..455fc15189 100644
--- a/tests/gem.scm
+++ b/tests/gem.scm
@@ -55,7 +55,7 @@
       { \"name\": \"bundler\" },
     ]
   },
-  \"licenses\": [\"MIT\", \"Apache 2.0\"]
+  \"licenses\": null
 }")
 
 (define test-bundler-json
@@ -138,7 +138,7 @@
               ('synopsis "Another cool gem")
               ('description "Another cool gem")
               ('home-page "https://example.com")
-              ('license ('list 'license:expat 'license:asl2.0)))
+              ('license #f))                      ;no licensing info
             ('package
               ('name "ruby-bundler")
               ('version "1.14.2")
diff --git a/tests/graph.scm b/tests/graph.scm
index b7732ec709..402847102f 100644
--- a/tests/graph.scm
+++ b/tests/graph.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -195,7 +195,7 @@ edges."
   (let-values (((dune bap ocaml-base)
                 (values (specification->package "dune")
                         (specification->package "bap")
-                        (specification->package "ocaml-base")))
+                        (specification->package "ocaml4.07-base")))
                ((backend nodes+edges) (make-recording-backend)))
     (run-with-store %store
       (export-graph (list dune) 'port
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index 21b6af4395..c1df6db3a4 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -1,5 +1,6 @@
 # GNU Guix --- Functional package management for GNU
 # Copyright © 2012, 2013, 2014, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 #
 # This file is part of GNU Guix.
 #
@@ -308,6 +309,14 @@ cat > "$module_dir/gexp.scm"<<EOF
 EOF
 guix build --file="$module_dir/gexp.scm" -d
 guix build --file="$module_dir/gexp.scm" -d | grep 'gexp\.drv'
+
+# Building from a manifest file.
+cat > "$module_dir/manifest.scm"<<EOF
+(specifications->manifest '("hello" "guix"))
+EOF
+test `guix build -d --manifest="$module_dir/manifest.scm" \
+      | grep -e '-hello-' -e '-guix-' \
+      | wc -l` -eq 2
 rm "$module_dir"/*.scm
 
 # Using 'GUIX_BUILD_OPTIONS'.
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 1b3121e503..7fe0cd1545 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -161,29 +161,22 @@
              (waitpid fork-pid)
              result))))))))
 
-;; XXX: Skip this test when running Linux > 4.7.5 to work around
-;; <https://bugzilla.kernel.org/show_bug.cgi?id=183461>.
-(when (or (not perform-container-tests?)
-          (version>? (utsname:release (uname)) "4.7.5")
-
-          ;; Skip on Ubuntu's 4.4 kernels, which contain a backport of the
-          ;; faulty code: <https://bugs.gnu.org/25476>.
-          (member (utsname:release (uname))
-                  '("4.4.0-21-generic" "4.4.0-59-generic"
-                    "4.4.0-116-generic")))
+(when (not perform-container-tests?)
   (test-skip 1))
 (test-equal "pivot-root"
-  #t
-  (match (pipe)
-    ((in . out)
+  'success!
+  (match (socketpair AF_UNIX SOCK_STREAM 0)
+    ((parent . child)
      (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD))
        (0
         (dynamic-wind
           (const #t)
           (lambda ()
-            (close in)
+            (close parent)
             (call-with-temporary-directory
              (lambda (root)
+               (display "ready\n" child)
+               (read child)                       ;wait for "go!"
                (let ((put-old (string-append root "/real-root")))
                  (mount "none" root "tmpfs")
                  (mkdir put-old)
@@ -192,18 +185,32 @@
                      (display "testing\n" port)))
                  (pivot-root root put-old)
                  ;; The test file should now be located inside the root directory.
-                 (write (file-exists? "/test") out)
-                 (close out)))))
+                 (write (and (file-exists? "/test") 'success!) child)
+                 (close child)))))
           (lambda ()
             (primitive-exit 0))))
        (pid
-        (close out)
-        (let ((result (read in)))
-          (close in)
-          (and (zero? (match (waitpid pid)
-                        ((_ . status)
-                         (status:exit-val status))))
-               (eq? #t result))))))))
+        (close child)
+        (match (read parent)
+          ('ready
+           ;; Set up the UID/GID mapping so that we can mkdir on the tmpfs:
+           ;; <https://bugzilla.kernel.org/show_bug.cgi?id=183461>.
+           (call-with-output-file (format #f "/proc/~d/setgroups" pid)
+             (lambda (port)
+               (display "deny" port)))
+           (call-with-output-file (format #f "/proc/~d/uid_map" pid)
+             (lambda (port)
+               (format port "0 ~d 1" (getuid))))
+           (call-with-output-file (format #f "/proc/~d/gid_map" pid)
+             (lambda (port)
+               (format port "0 ~d 1" (getgid))))
+           (display "go!\n" parent)
+           (let ((result (read parent)))
+             (close parent)
+             (and (zero? (match (waitpid pid)
+                           ((_ . status)
+                            (status:exit-val status))))
+                  result)))))))))
 
 (test-equal "scandir*, ENOENT"
   ENOENT