summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/audio.scm13
-rw-r--r--gnu/packages/backup.scm20
-rw-r--r--gnu/packages/bioinformatics.scm52
-rw-r--r--gnu/packages/boost.scm16
-rw-r--r--gnu/packages/cran.scm101
-rw-r--r--gnu/packages/databases.scm21
-rw-r--r--gnu/packages/engineering.scm16
-rw-r--r--gnu/packages/fonts.scm9
-rw-r--r--gnu/packages/gdb.scm4
-rw-r--r--gnu/packages/gnupg.scm34
-rw-r--r--gnu/packages/guile.scm16
-rw-r--r--gnu/packages/haskell-check.scm7
-rw-r--r--gnu/packages/haskell.scm46
-rw-r--r--gnu/packages/linux.scm16
-rw-r--r--gnu/packages/mpd.scm12
-rw-r--r--gnu/packages/music.scm61
-rw-r--r--gnu/packages/networking.scm5
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/password-utils.scm22
-rw-r--r--gnu/packages/patches/byobu-writable-status.patch10
-rw-r--r--gnu/packages/patches/openssh-CVE-2018-15473.patch165
-rw-r--r--gnu/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch62
-rw-r--r--gnu/packages/patches/soundtouch-CVE-2018-1000223.patch143
-rw-r--r--gnu/packages/patches/soundtouch-CVE-2018-14044-14045.patch138
-rw-r--r--gnu/packages/python.scm27
-rw-r--r--gnu/packages/screen.scm12
-rw-r--r--gnu/packages/security-token.scm4
-rw-r--r--gnu/packages/ssh.scm5
-rw-r--r--gnu/packages/statistics.scm28
-rw-r--r--gnu/packages/version-control.scm20
-rw-r--r--gnu/packages/web.scm24
-rw-r--r--gnu/packages/wine.scm48
-rw-r--r--gnu/packages/xorg.scm15
-rw-r--r--guix/build/debug-link.scm210
-rw-r--r--guix/build/graft.scm31
-rw-r--r--guix/grafts.scm17
-rw-r--r--po/guix/de.po2909
-rw-r--r--tests/cpan.scm2
-rw-r--r--tests/debug-link.scm158
41 files changed, 3213 insertions, 1296 deletions
diff --git a/Makefile.am b/Makefile.am
index bdf1c63cee..324674a60e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -171,6 +171,7 @@ MODULES =					\
   guix/build/svn.scm				\
   guix/build/syscalls.scm                       \
   guix/build/gremlin.scm			\
+  guix/build/debug-link.scm			\
   guix/build/emacs-utils.scm			\
   guix/build/java-utils.scm			\
   guix/build/lisp-utils.scm			\
@@ -363,6 +364,7 @@ SCM_TESTS =					\
   tests/syscalls.scm				\
   tests/inferior.scm				\
   tests/gremlin.scm				\
+  tests/debug-link.scm				\
   tests/bournish.scm				\
   tests/lint.scm				\
   tests/publish.scm				\
diff --git a/gnu/local.mk b/gnu/local.mk
index eb0862448f..60db25a60c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -997,7 +997,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openldap-CVE-2017-9287.patch		\
   %D%/packages/patches/openocd-nrf52.patch			\
   %D%/packages/patches/opensmtpd-fix-crash.patch		\
-  %D%/packages/patches/openssh-CVE-2018-15473.patch		\
   %D%/packages/patches/openssl-runpath.patch			\
   %D%/packages/patches/openssl-1.0.2-CVE-2018-0495.patch	\
   %D%/packages/patches/openssl-1.0.2-CVE-2018-0732.patch	\
@@ -1018,7 +1017,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/perl-archive-tar-CVE-2018-12015.patch	\
   %D%/packages/patches/perl-file-path-CVE-2017-6512.patch	\
   %D%/packages/patches/perl-autosplit-default-time.patch	\
-  %D%/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch	\
   %D%/packages/patches/perl-deterministic-ordering.patch	\
   %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
   %D%/packages/patches/perl-io-socket-ssl-openssl-1.0.2f-fix.patch \
@@ -1139,6 +1137,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/slim-reset.patch				\
   %D%/packages/patches/slim-login.patch				\
   %D%/packages/patches/sooperlooper-build-with-wx-30.patch 	\
+  %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch 	\
+  %D%/packages/patches/soundtouch-CVE-2018-1000223.patch 	\
   %D%/packages/patches/steghide-fixes.patch			\
   %D%/packages/patches/superlu-dist-scotchmetis.patch		\
   %D%/packages/patches/swish-e-search.patch			\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 82533da4bb..f7f831918b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2004,17 +2004,17 @@ and ALSA.")
 (define-public qjackctl
   (package
     (name "qjackctl")
-    (version "0.5.1")
+    (version "0.5.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
                                   version "/qjackctl-" version ".tar.gz"))
               (sha256
                (base32
-                "0jw1s4qh4qjxnysddjv3j2lchwlslj9p4iisv9i89d3m7pf1svs4"))))
+                "0x08af8m5l8qy9av3dlldsg58ny9nc69h1s4i6hqkvj24jwy6fw1"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:tests? #f)) ; no check target
+     '(#:tests? #f))                    ; no check target
     (inputs
      `(("jack" ,jack-1)
        ("alsa-lib" ,alsa-lib)
@@ -2582,15 +2582,18 @@ Tracker 3 S3M and Impulse Tracker IT files.")
 (define-public soundtouch
   (package
     (name "soundtouch")
-    (version "1.8.0")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append
          "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
+       (patches (search-patches "soundtouch-CVE-2018-14044-14045.patch"
+                                "soundtouch-CVE-2018-1000223.patch"))
        (sha256
-        (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x"))))
+        (base32
+         "09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 754dfa1a40..b36bb74f6f 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -67,7 +67,7 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.7.17")
+    (version "0.7.18")
     (source
      (origin
       (method url-fetch)
@@ -77,10 +77,10 @@
                           version ".tar.gz"))
       (sha256
        (base32
-        "0jmh3h09680xyf33hzxxxl74bwz66zqhzvjlj7j89r9rz3qwa91p"))))
+        "1qlika4l1k1nx8zr657ihcy0yzr1c1cdnjlbs325l5krvc3zbc5b"))))
     (build-system python-build-system)
     (native-inputs
-     `(("util-linux" ,util-linux)     ;setsid command, for the tests
+     `(("util-linux" ,util-linux)       ; setsid command, for the tests
        ("par2cmdline" ,par2cmdline)
        ("python-pexpect" ,python2-pexpect)
        ("python-fasteners" ,python2-fasteners)
@@ -91,23 +91,23 @@
     (inputs
      `(("librsync" ,librsync)
        ("lftp" ,lftp)
-       ("gnupg" ,gnupg)                 ;gpg executable needed
-       ("util-linux" ,util-linux)       ;for setsid
+       ("gnupg" ,gnupg)                 ; gpg executable needed
+       ("util-linux" ,util-linux)       ; for setsid
        ("tzdata" ,tzdata)))
     (arguments
-     `(#:python ,python-2               ;setup assumes Python 2
+     `(#:python ,python-2               ; setup assumes Python 2
        #:test-target "test"
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'patch-source
            (lambda* (#:key inputs #:allow-other-keys)
-             ;; embed gpg store name
+             ;; Embed gpg store name.
              (substitute* "duplicity/gpginterface.py"
                (("self.call = 'gpg'")
                 (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'")))
 
              ;; This matches up with an unreleased upstream fix, it should be
-             ;; removed when the package is updated
+             ;; removed when the package is updated.
              ;; https://bazaar.launchpad.net/~duplicity-team/duplicity/0.8-series/revision/1308
              (substitute* "duplicity/gpg.py"
                (("--no-secmem-warning'\\)")
@@ -120,8 +120,8 @@
              #t))
          (add-before 'check 'check-setup
            (lambda* (#:key inputs #:allow-other-keys)
-             (setenv "HOME" (getcwd)) ;gpg needs to write to $HOME
-             (setenv "TZDIR"          ;some timestamp checks need TZDIR
+             (setenv "HOME" (getcwd))   ; gpg needs to write to $HOME
+             (setenv "TZDIR"            ; some timestamp checks need TZDIR
                      (string-append (assoc-ref inputs "tzdata")
                                     "/share/zoneinfo"))
              #t)))))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index dce8ab62f1..cb3c4bc1fd 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -13406,3 +13406,55 @@ conversions, region filtering, FASTA sequence extraction and more.")
       ;; gffread is under Expat, but gclib is under Artistic 2.0
       (license (list license:expat
                      license:artistic2.0)))))
+
+(define-public find-circ
+  ;; The last release was in 2015.  The license was clarified in 2017, so we
+  ;; take the latest commit.
+  (let ((commit "8655dca54970fcf7e92e22fbf57e1188724dda7d")
+        (revision "1"))
+    (package
+      (name "find-circ")
+      (version (git-version "1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/marvin-jens/find_circ.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0p77pbqbclqr4srms34y1b9b4njybfpjiknc11ki84f3p8skb3cg"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ; there are none
+         #:phases
+         ;; There is no actual build system.
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'build)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (path (getenv "PYTHONPATH")))
+                 (for-each (lambda (script)
+                             (install-file script bin)
+                             (wrap-program (string-append bin "/" script)
+                               `("PYTHONPATH" ":" prefix (,path))))
+                           '("cmp_bed.py"
+                             "find_circ.py"
+                             "maxlength.py"
+                             "merge_bed.py"
+                             "unmapped2anchors.py")))
+               #t)))))
+      (inputs
+       `(("python2" ,python-2)
+         ("python2-pysam" ,python2-pysam)
+         ("python2-numpy" ,python2-numpy)))
+      (home-page "https://github.com/marvin-jens/find_circ")
+      (synopsis "circRNA detection from RNA-seq reads")
+      (description "This package provides tools to detect head-to-tail
+spliced (back-spliced) sequencing reads, indicative of circular RNA (circRNA)
+in RNA-seq data.")
+      (license license:gpl3))))
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index d00f96de64..cf70a29775 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -110,6 +110,22 @@ across a broad spectrum of applications.")
     (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
                                 "Some components have other similar licences."))))
 
+(define-public boost-for-mysql
+  ;; Older version for MySQL 5.7.23.
+  (package
+    (inherit boost)
+    (version "1.59.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/boost/boost/" version "/boost_"
+                    (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj"))))
+    (properties '((hidden? . #t)))))
+
 (define-public boost-sync
   (let ((commit "c72891d9b90e2ceb466ec859f640cd012b2d8709")
         (version "1.55")
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index b541f1c327..eb6bf9c38b 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018 Sandeep Subramanian <sandeepsubramanian94@gmail.com>
 ;;; Copyright © 2018 Charlie Ritter <chewzeirta@posteo.net>
 ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -482,13 +483,13 @@ processes.  Most of its code is based on the @code{psutil} Python package.")
 (define-public r-rcpp
   (package
     (name "r-rcpp")
-    (version "0.12.17")
+    (version "0.12.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rcpp" version))
        (sha256
-        (base32 "08xg8h3w25sdb3xr18g9pa0x8cirkdgljqapxmw56ss1j9fc89s2"))))
+        (base32 "006kpg2ph109rh1l13lqk26pp4as4fvl5661vrcczjygacgd1v7w"))))
     (build-system r-build-system)
     (home-page "http://www.rcpp.org")
     (synopsis "Seamless R and C++ integration")
@@ -4847,3 +4848,99 @@ differential equations} (ODE).  It includes routines that:
   approach).
 @end enumerate\n")
     (license license:gpl2+)))
+
+(define-public r-abcanalysis
+  (package
+    (name "r-abcanalysis")
+    (version "1.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "ABCanalysis" version))
+       (sha256
+        (base32 "0wac1ksmnxa36v99ca4hv8k0rsh3igwpcllmlv9wf7i9kgqviqwi"))))
+    (properties `((upstream-name . "ABCanalysis")))
+    (build-system r-build-system)
+    (propagated-inputs `(("r-plotrix" ,r-plotrix)))
+    (home-page "https://www.uni-marburg.de/fb12/arbeitsgruppen/datenbionik/software-en/")
+    (synopsis "Computed ABC Analysis")
+    (description
+     "Multivariate data sets often differ in several factors or derived statistical
+parameters, which have to be selected for a valid interpretation.  Basing this
+selection on traditional statistical limits leads occasionally to the perception
+of losing information from a data set.  This package provides tools to calculate
+these limits on the basis of the mathematical properties of the distribution of
+the analyzed items.")
+    (license license:gpl3)))
+
+(define-public r-slam
+  (package
+    (name "r-slam")
+    (version "0.1-43")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "slam" version))
+       (sha256
+        (base32 "0hy4qzngcgafxxr6ld7n9a9wy979ji998gpcc32vidwyab66dj5h"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/slam/")
+    (synopsis "Sparse lightweight arrays and matrices")
+    (description
+     "This package contains data structures and algorithms for sparse arrays and matrices,
+based on index arrays and simple triplet representations, respectively.")
+    (license license:gpl2)))
+
+(define-public r-manipulatewidget
+  (package
+    (name "r-manipulatewidget")
+    (version "0.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "manipulateWidget" version))
+       (sha256
+        (base32 "1zagrbwkn2d50zzw8i2vyb1hsq4cydmfsqiy1a2qlp6zrv8a6q9x"))))
+    (properties
+     `((upstream-name . "manipulateWidget")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-base64enc" ,r-base64enc)
+       ("r-codetools" ,r-codetools)
+       ("r-htmltools" ,r-htmltools)
+       ("r-htmlwidgets" ,r-htmlwidgets)
+       ("r-knitr" ,r-knitr)
+       ("r-miniui" ,r-miniui)
+       ("r-shiny" ,r-shiny)
+       ("r-webshot" ,r-webshot)))
+    (home-page "https://github.com/rte-antares-rpackage/manipulateWidget/")
+    (synopsis "Add even more interactivity to interactive charts")
+    (description
+     "This package lets you create in just a few lines of R code a nice user interface to
+modify the data or the graphical parameters of one or multiple interactive
+charts.  It is useful to quickly explore visually some data or for package
+developers to generate user interfaces easy to maintain.")
+    (license license:gpl2+)))
+
+(define-public r-a3
+  (package
+    (name "r-a3")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "A3" version))
+       (sha256
+        (base32 "017hq9pjsv1h9i7cqk5cfx27as54shlhdsdvr6jkhb8jfkpdb6cw"))))
+    (properties `((upstream-name . "A3")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-pbapply" ,r-pbapply)
+       ("r-xtable" ,r-xtable)))
+    (home-page "https://cran.r-project.org/web/packages/A3/")
+    (synopsis "Error metrics for predictive models")
+    (description
+     "This package supplies tools for tabulating and analyzing the results of predictive
+models.  The methods employed are applicable to virtually any predictive model
+and make comparisons between different methodologies straightforward.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index a6e447894c..dc8e52036c 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -549,20 +549,6 @@ RDBMS systems (which are deep in functionality).")
                    ;; Some parts are licensed under the Apache License
                    license:asl2.0))))
 
-(define boost-for-mysql
-  (package
-    (inherit boost)
-    (version "1.59.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/boost/boost/" version "/boost_"
-                    (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
-                    ".tar.bz2"))
-              (sha256
-               (base32
-                "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj"))))))
-
 ;; XXX When updating, check whether boost-for-mysql is still needed.
 ;; It might suffice to patch ‘cmake/boost.cmake’ as done in the past.
 (define-public mysql
@@ -1474,16 +1460,15 @@ columns, primary keys, unique constraints and relationships.")
 (define-public perl-dbd-mysql
   (package
     (name "perl-dbd-mysql")
-    (version "4.043")
+    (version "4.046")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
+       (uri (string-append "mirror://cpan/authors/id/C/CA/CAPTTOFU/"
                            "DBD-mysql-" version ".tar.gz"))
        (sha256
         (base32
-         "16bg7l28n65ngi1abjxvwk906a80i2vd5vzjn812dx8phdg8d7v2"))
-       (patches (search-patches "perl-dbd-mysql-CVE-2017-10788.patch"))))
+         "1xziv9w87cl3fbl1mqkdrx28mdqly3gs6gs1ynbmpl2rr4p6arb1"))))
     (build-system perl-build-system)
     ;; Tests require running MySQL server
     (arguments `(#:tests? #f))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index b66b8d72bf..f11ce71f5a 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1008,7 +1008,7 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
 (define-public capstone
   (package
     (name "capstone")
-    (version "3.0.5-rc2")
+    (version "3.0.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/aquynh/capstone/archive/"
@@ -1016,22 +1016,20 @@ language, ADMS transforms Verilog-AMS code into other target languages.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1cqms9r2p43aiwp5spd84zaccp16ih03r7sjhrv16nddahj0jz2q"))))
+                "1wbd1g3r32ni6zd9vwrq3kn7fdp9y8qwn9zllrrbk8n5wyaxcgci"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
-       #:make-flags (list (string-append "PREFIX=" %output)
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           "CC=gcc")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         ;; cstool's Makefile overrides LDFLAGS, so we cannot pass it as a make flag.
+         (delete 'configure)            ; no configure script
+         ;; cstool's Makefile ‘+=’s LDFLAGS, so we cannot pass it as a make flag.
          (add-before 'build 'fix-cstool-ldflags
            (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "cstool/Makefile"
-               (("LDFLAGS =")
-                (string-append "LDFLAGS = -Wl,-rpath=" (assoc-ref outputs "out")
-                               "/lib")))
+             (setenv "LDFLAGS"  (string-append "-Wl,-rpath="
+                                               (assoc-ref outputs "out") "/lib"))
              #t)))))
     (home-page "http://www.capstone-engine.org")
     (synopsis "Lightweight multi-platform, multi-architecture disassembly framework")
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index dd91d77c6c..4d02b4bc62 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -621,7 +621,7 @@ languages, plus Greek and Cyrillic.")
 (define-public font-gnu-unifont
   (package
     (name "font-gnu-unifont")
-    (version "11.0.01")
+    (version "11.0.02")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -629,7 +629,7 @@ languages, plus Greek and Cyrillic.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "1nkapra0ic4fp3lmnvfc6jly62yskhcdkwrnq29hvh3xs51ncc52"))))
+                "1di8i44c163b9l5f08jcrjfijnqz0j7p7hpfvf8dcms6cm6s4wvy"))))
     (build-system gnu-build-system)
     (outputs '("out" ; TrueType version
                "pcf" ; PCF (bitmap) version
@@ -662,8 +662,9 @@ languages, plus Greek and Cyrillic.")
                       "install")
               ;; Move Texinfo file to the right place.
               (mkdir (string-append bin "/share/info"))
-              (rename-file (string-append bin "/share/unifont/unifont.info.gz")
-                           (string-append bin "/share/info/unifont.info.gz"))
+              (invoke "gzip" "-9n" "doc/unifont.info")
+              (install-file "doc/unifont.info.gz"
+                            (string-append bin "/share/info"))
               #t))))))
     (inputs
      `(("perl" ,perl))) ; for utilities
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 36ccb79d67..f0c4c8b804 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -37,14 +37,14 @@
 (define-public gdb
   (package
     (name "gdb")
-    (version "8.1")
+    (version "8.1.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/gdb/gdb-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0d2bpqk58fqlx21rbnk8mbcjlggzc9kb5sjirrfrrrjq70ka0qdg"))))
+               "0g6hv9xk12aa58w77fydaldqr9a6b0a6bnwsq87jfc6lkcbc7p4p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 70e7ddbe58..d5fb12650f 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages guile)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages perl-check)
@@ -56,6 +57,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages security-token)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages tor)
   #:use-module (gnu packages web)
@@ -451,6 +453,38 @@ QGpgME was originally developed as part of libkleo and incorporated into
 gpgpme starting with version 1.7.")
     (license license:gpl2+))) ;; Note: this differs from gpgme
 
+(define-public guile-gcrypt
+  (package
+    (name "guile-gcrypt")
+    (version "0.1.0")
+    (home-page "https://notabug.org/cwebber/guile-gcrypt")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append home-page ".git"))
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1lhgh3105yi0ggrjsjibv4wp1ipz8s17pa820hk2wln3rc04wpvf"))
+              (file-name (string-append name "-" version "-checkout"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("texinfo" ,texinfo)))
+    (inputs
+     `(("guile" ,guile-2.2)
+       ("libgcrypt" ,libgcrypt)))
+    (synopsis "Cryptography library for Guile using Libgcrypt")
+    (description
+     "Guile-Gcrypt provides a Guile 2.x interface to a subset of the
+GNU Libgcrypt crytographic library.  It provides modules for cryptographic
+hash functions, message authentication codes (MAC), public-key cryptography,
+strong randomness, and more.  It is implemented using the foreign function
+interface (FFI) of Guile.")
+    (license license:gpl3+)))
+
 (define-public python-gpg
   (package
     (name "python-gpg")
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 30d2e2612c..f2a252b8d3 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -850,27 +850,18 @@ The library is shipped with documentation in Info format and usage examples.")
 (define-public guile-lib
   (package
     (name "guile-lib")
-    (version "0.2.6")
+    (version "0.2.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/guile-lib/guile-lib-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0n1lf5bsr5s9gqi07sdfkl1hpin6dzvkcj1xa63jd1w8aglwv8r1"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; 'pre-inst-env' sets an incorrect load path, missing the
-                  ;; "/src" bit.  Add it.
-                  (substitute* "pre-inst-env.in"
-                    (("abs_top_(builddir|srcdir)=([[:graph:]]+)" _ dir value)
-                     (string-append "abs_top_" dir "=" value "/src")))
-                  #t))))
+                "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags
-       '("GUILE_AUTO_COMPILE=0")        ;to prevent guild errors
+       '("GUILE_AUTO_COMPILE=0")        ; to prevent guild errors
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-module-dir
@@ -1243,7 +1234,6 @@ above command-line parameters.")
        ("automake" ,automake)
        ("pkg-config" ,pkg-config)
        ("guile" ,guile-2.2)))
-    (home-page "https://savannah.nongnu.org/projects/guile-redis/")
     (synopsis "Redis client library for Guile")
     (description "Guile-redis provides a Scheme interface to the Redis
 key-value cache and store.")
diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 1d673c606a..c3ef85f3f0 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -342,7 +343,7 @@ development.")
 (define-public ghc-quickcheck-instances
   (package
     (name "ghc-quickcheck-instances")
-    (version "0.3.16.1")
+    (version "0.3.18")
     (source
      (origin
        (method url-fetch)
@@ -352,8 +353,10 @@ development.")
              version ".tar.gz"))
        (sha256
         (base32
-         "01v5bs7r9yvhkvb4yc9bqnacy8r6cy2gr9lnmwx40n5apgi0gcbz"))))
+         "1bh1pzz5fdcqvzdcirqxna6fnjms02min5md716299g5niz46w55"))))
     (build-system haskell-build-system)
+    (arguments
+     `(#:configure-flags (list "--allow-newer=base-compat")))
     (inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
        ("ghc-base-compat" ,ghc-base-compat)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 7347c87534..759ca6044e 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +41,7 @@
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages haskell-crypto)
   #:use-module (gnu packages haskell-web)
@@ -1938,7 +1940,7 @@ literals.")
 (define-public ghc-zlib
   (package
     (name "ghc-zlib")
-    (version "0.6.1.1")
+    (version "0.6.2")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -1949,7 +1951,7 @@ literals.")
              ".tar.gz"))
        (sha256
         (base32
-         "0dd79dxf56d8f6ad9if3j87s9gg7yd17ckypjxwplrbkahlb9xf5"))))
+         "1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
     (build-system haskell-build-system)
     ;; Tests require older versions of testy.
     (arguments `(#:tests? #f))
@@ -3380,7 +3382,7 @@ variety of traversals.")
 (define-public ghc-fgl
   (package
     (name "ghc-fgl")
-    (version "5.5.3.0")
+    (version "5.6.0.0")
     (outputs '("out" "doc"))
     (source
      (origin
@@ -3391,10 +3393,11 @@ variety of traversals.")
              ".tar.gz"))
        (sha256
         (base32
-         "0fbyb6jxy9whgrv6dgnkzz70cmy98arx3q2gnkhgl4a3d7idh36p"))))
+         "1i6cp4b3w7sjk7y1dq3fh6bci2sm5h3lnbbaw9ln19nwncg2wwll"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=hspec")))
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
        ("ghc-hspec" ,ghc-hspec)
@@ -4092,7 +4095,7 @@ system.")
 (define-public ghc-base-compat
   (package
     (name "ghc-base-compat")
-    (version "0.9.3")
+    (version "0.10.4")
     (source
      (origin
        (method url-fetch)
@@ -4102,7 +4105,7 @@ system.")
              ".tar.gz"))
        (sha256
         (base32
-         "0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"))))
+         "0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-quickcheck" ,ghc-quickcheck)
@@ -6846,7 +6849,7 @@ this problem.")
 (define-public ghc-sandi
   (package
     (name "ghc-sandi")
-    (version "0.4.0") ; darcs-2.12.4 needs == 0.4.*
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
@@ -6855,7 +6858,7 @@ this problem.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1smf3bq44qni4zbgxpw7cy7b9g95fbrr73j8njjf6139naj9bj20"))))
+         "0dvkpk91n9kz2ha04rvp231ra9sgd1ilyc1qkzf9l03iir7zrh9b"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-stringsearch" ,ghc-stringsearch)
@@ -7045,7 +7048,7 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
 (define-public ghc-wl-pprint-text
   (package
     (name "ghc-wl-pprint-text")
-    (version "1.1.0.4")
+    (version "1.2.0.0")
     (source
      (origin
        (method url-fetch)
@@ -7054,10 +7057,11 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
              version ".tar.gz"))
        (sha256
         (base32
-         "1xgizzimfw17mpmw2afvmnvyag976j8ggn7k5r564rkw9f0m6bgz"))))
+         "0g3w92rad6x5appfb22rbzcas2ix2h0hy91sdxhq8a4a5cnlrpa0"))))
     (build-system haskell-build-system)
     (inputs
-     `(("ghc-text" ,ghc-text)))
+     `(("ghc-base-compat" ,ghc-base-compat)
+       ("ghc-text" ,ghc-text)))
     (home-page "https://hackage.haskell.org/package/wl-pprint-text")
     (synopsis "Wadler/Leijen Pretty Printer for Text values")
     (description
@@ -7079,7 +7083,8 @@ supported.  A module of colour names (\"Data.Colour.Names\") is provided.")
          "0ln1szgfy8fa78l3issq4fx3aqnnd54w3cb4wssrfi48vd5rkfjm"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:configure-flags (list "--allow-newer=QuickCheck")))
+     `(#:configure-flags (list "--allow-newer=QuickCheck"
+                               "--allow-newer=hspec")))
     (inputs
      `(("ghc-fgl" ,ghc-fgl)
        ("ghc-quickcheck" ,ghc-quickcheck)
@@ -7096,14 +7101,14 @@ for generating graph-like data structures.")
 (define-public ghc-graphviz
   (package
     (name "ghc-graphviz")
-    (version "2999.18.1.2")
+    (version "2999.20.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://hackage.haskell.org/package/"
                                   "graphviz/graphviz-" version ".tar.gz"))
               (sha256
                (base32
-                "1z453is01v0rnxlv6xx4iyaqv5vrp3bpz829mpv1a341sck2135h"))))
+                "0kj7ap0gnliviq2p8lscw1m06capnsa90vpvcys24nqy5nw2wrp7"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags (list "--allow-newer=QuickCheck")))
@@ -7117,6 +7122,10 @@ for generating graph-like data structures.")
        ("ghc-temporary" ,ghc-temporary)
        ("ghc-text" ,ghc-text)
        ("ghc-wl-pprint-text" ,ghc-wl-pprint-text)))
+    (native-inputs
+     `(("ghc-hspec" ,ghc-hspec)
+       ("graphviz" ,graphviz)
+       ("hspec-discover" ,hspec-discover)))
     (home-page "https://hackage.haskell.org/package/graphviz")
     (synopsis "Bindings to Graphviz for graph visualisation")
     (description
@@ -7261,7 +7270,7 @@ which can't be decoded in the current locale encoding.")
 (define-public ghc-shelly
   (package
     (name "ghc-shelly")
-    (version "1.7.0.1")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
@@ -7270,7 +7279,7 @@ which can't be decoded in the current locale encoding.")
              version ".tar.gz"))
        (sha256
         (base32
-         "0a4ngy8jqcscqhimgiyz7f9kqm23is7x7gyjxr0j6iq1dy57ahq3"))))
+         "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-mtl" ,ghc-mtl)
@@ -7286,7 +7295,8 @@ which can't be decoded in the current locale encoding.")
        ("ghc-async" ,ghc-async)
        ("ghc-transformers-base" ,ghc-transformers-base)
        ("ghc-hunit" ,ghc-hunit)
-       ("ghc-hspec" ,ghc-hspec)))
+       ("ghc-hspec" ,ghc-hspec)
+       ("ghc-hspec-contrib" ,ghc-hspec-contrib)))
     (home-page "https://github.com/yesodweb/Shelly.hs")
     (synopsis "Shell-like (systems) programming in Haskell")
     (description
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 968beb52ee..9b9cf01560 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -404,8 +404,8 @@ It has been modified to remove all non-free binary blobs.")
 ;; supports qemu "virt" machine and possibly a large number of ARM boards.
 ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
 
-(define %linux-libre-version "4.18.3")
-(define %linux-libre-hash "0z7nnkmk5d2npilviqxa0m6nn30f5arhviysby78kkb3j2isx9jx")
+(define %linux-libre-version "4.18.4")
+(define %linux-libre-hash "1q3bndhwxwcrlyi0qcgxjsp5fl92wkfgk4y41qwrrywfv9xj3sl7")
 
 (define %linux-libre-4.18-patches
   (list %boot-logo-patch
@@ -435,8 +435,8 @@ It has been modified to remove all non-free binary blobs.")
                     #:patches %linux-libre-4.18-patches
                     #:configuration-file kernel-config))
 
-(define %linux-libre-4.14-version "4.14.65")
-(define %linux-libre-4.14-hash "0sdv2c0ix2mdc5h10d56bwi77hpb4gibmrsl1ydyb95hgg37k6h0")
+(define %linux-libre-4.14-version "4.14.66")
+(define %linux-libre-4.14-hash "1sf18m6xjyg535yviz3yjbislf57s180y67z7mzbcl5pq9352bg9")
 
 (define-public linux-libre-4.14
   (make-linux-libre %linux-libre-4.14-version
@@ -445,14 +445,14 @@ It has been modified to remove all non-free binary blobs.")
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.9
-  (make-linux-libre "4.9.122"
-                    "1yjld5q0xpsv4pd285hjp50kr2i41p3yiy1afp8nf88322i2947w"
+  (make-linux-libre "4.9.123"
+                    "1rljdp3vzhmdc6qha6b9dq0d1a3xz06rn51pb4ad3a2y61mph9sv"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
 (define-public linux-libre-4.4
-  (make-linux-libre "4.4.150"
-                    "0dbz6bzxnr8dgp91lnf3jp42cw6dld4yq7ngigpq7s6ymr59j3ah"
+  (make-linux-libre "4.4.151"
+                    "0irzdq4p8a6dxyx5basgrc7af7w48hmyjwbk5hff8wn8jy71p9zm"
                     %intel-compatible-systems
                     #:configuration-file kernel-config))
 
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 29d59c5de4..2554ec9efd 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -185,7 +185,7 @@ player daemon.")
 (define-public ncmpc
   (package
     (name "ncmpc")
-    (version "0.27")
+    (version "0.29")
     (source (origin
               (method url-fetch)
               (uri
@@ -194,12 +194,16 @@ player daemon.")
                               "/ncmpc-" version ".tar.xz"))
               (sha256
                (base32
-                "1n8m7syhpgx24hfipixv66h2izn229jkxsmh2q5dzkv9r0znm8pr"))))
-    (build-system gnu-build-system)
+                "04jzv1hfdvgbn391523jb2h3yhq9a40pjrg41sl3wf3jf6vajs7g"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-Dcurses=ncurses")))
     (inputs `(("glib" ,glib)
               ("libmpdclient" ,libmpdclient)
               ("ncurses" ,ncurses)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs `(("gettext" ,gettext-minimal) ; for xgettext
+                     ("pkg-config" ,pkg-config)))
     (synopsis "Curses Music Player Daemon client")
     (description "ncmpc is a fully featured MPD client, which runs in a
 terminal using ncurses.")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 599a1d8943..af2dcf8eaf 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -384,7 +384,7 @@ many input formats and provides a customisable Vi-style user interface.")
            ;; Denemo's documentation says to use this command to run its
            ;; testsuite.
            (lambda _
-             (zero? (system* "make" "-C" "tests" "check"))))
+             (invoke "make" "-C" "tests" "check")))
          (add-before 'build 'set-lilypond
            ;; This phase sets the default path for lilypond to its current
            ;; location in the store.
@@ -411,7 +411,7 @@ many input formats and provides a customisable Vi-style user interface.")
                             "Clarinet in Bb.denemo"))
              #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")   ; for gtester
+     `(("glib:bin" ,glib "bin")         ; for gtester
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -1289,7 +1289,7 @@ users to select LV2 plugins and run them with jalv.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.0")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1297,10 +1297,10 @@ users to select LV2 plugins and run them with jalv.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1skynjg6ip0qfbqqkybfjh6xcwxagq89ghl08f7sp7j0sz5qdcwp"))))
+                "1r60l286n8y4a4rrlnbc3h7xk4s2pvqykvskls89prxg0lkpz7kl"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests.
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (inputs
@@ -1313,7 +1313,7 @@ users to select LV2 plugins and run them with jalv.")
        ("qttools" ,qttools)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://synthv1.sourceforge.net")
+    (home-page "https://synthv1.sourceforge.io")
     (synopsis "Polyphonic subtractive synthesizer")
     (description
      "Synthv1 is an old-school subtractive polyphonic synthesizer with four
@@ -1323,7 +1323,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.0")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1331,10 +1331,10 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1vm8lrk3lykdic6fyfpl12jx1xg6rcaid242s8sij30p1ix4zdab"))))
+                "1z9l43z91d01b9rzam2cj9qmmg6s5y65fjvb83ms4iaa1p0mnwrn"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests.
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (inputs
@@ -1348,7 +1348,7 @@ oscillators and stereo effects.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
-    (home-page "http://drumkv1.sourceforge.net")
+    (home-page "https://drumkv1.sourceforge.io")
     (synopsis "Drum-kit sampler synthesizer with stereo effects")
     (description
      "Drumkv1 is an old-school drum-kit sampler synthesizer with stereo
@@ -1358,7 +1358,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.0")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1366,10 +1366,10 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0g67vm9ilmq5nlvk0f3abia9pbinr4ck5v4mll6igni1rxz2n7wk"))))
+                "0rfcp4v971qfhw1hb43hw12wlxmg2q13l0m1h93pyfi5l4mfjkds"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests.
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (inputs
@@ -1383,7 +1383,7 @@ effects.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
-    (home-page "http://samplv1.sourceforge.net")
+    (home-page "https://samplv1.sourceforge.io")
     (synopsis "Polyphonic sampler synthesizer with stereo effects")
     (description
      "Samplv1 is an old-school polyphonic sampler synthesizer with stereo
@@ -1393,7 +1393,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.0")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1401,10 +1401,10 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0c519qk2g0dk8gqf9ywqfp7dnr4b25lsnxxbf2l1spnnvf8nysvh"))))
+                "1alfl0l5qdll0w5lwhrwzj5dina1big1zmjg5imi9h06dzhz51xl"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests.
+     `(#:tests? #f                      ; there are no tests
        #:configure-flags
        '("CXXFLAGS=-std=gnu++11")))
     (inputs
@@ -1418,7 +1418,7 @@ effects.")
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
-    (home-page "http://padthv1.sourceforge.net")
+    (home-page "https://padthv1.sourceforge.io")
     (synopsis "Polyphonic additive synthesizer")
     (description
      "Padthv1 is an old-school polyphonic additive synthesizer with stereo
@@ -1624,7 +1624,7 @@ is subjective.")
 (define-public tuxguitar
   (package
     (name "tuxguitar")
-    (version "1.5")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1632,19 +1632,12 @@ is subjective.")
                     version "/tuxguitar-" version "-src.tar.gz"))
               (sha256
                (base32
-                "1yd5wv17sh6i8pkndxayfd6r2k1ccgnc4w3nda3lpniv8cpjzz3k"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Delete pre-built classes
-                  (delete-file-recursively "TuxGuitar-android-gdrive/bin")
-                  (delete-file-recursively "TuxGuitar-android-gdrive-gdaa/bin")
-                  #t))))
+                "10arfpgm2pw7mn922klklzn05lw5ifqx070shdrar81afmkfbbd9"))))
     (build-system ant-build-system)
     (arguments
      `(#:build-target "build"
        #:jdk ,icedtea-8
-       #:tests? #f ; no tests
+       #:tests? #f                      ; no tests
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'enter-dir
@@ -1663,7 +1656,7 @@ is subjective.")
                                      ((assoc-ref %standard-phases 'build)
                                       #:build-target "build")
                                      (begin
-                                       ;; Generate default build.xml
+                                       ;; Generate default build.xml.
                                        ((@@ (guix build ant-build-system) default-build.xml)
                                         (string-append (string-downcase dir) ".jar")
                                         (string-append (assoc-ref outputs "out")
@@ -1686,15 +1679,15 @@ is subjective.")
                     (lib   (string-append share "/java"))
                     (swt   (assoc-ref inputs "java-swt")))
                (mkdir-p bin)
-               ;; install all jars
+               ;; Install all jars.
                (for-each (lambda (file)
                            (install-file file lib))
                          (find-files ".." "\\.jar$"))
 
-               ;; install all resources
+               ;; Install all resources.
                (copy-recursively "share" share)
 
-               ;; create wrapper
+               ;; Create wrapper.
                (call-with-output-file (string-append bin "/tuxguitar")
                  (lambda (port)
                    (let ((classpath (string-join (append (find-files lib "\\.jar$")
@@ -2055,14 +2048,14 @@ improves on support for JACK features, such as JACK MIDI.")
 (define-public libgig
   (package
     (name "libgig")
-    (version "4.0.0")
+    (version "4.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.linuxsampler.org/packages/"
                                   "libgig-" version ".tar.bz2"))
               (sha256
                (base32
-                "1wr8mwjmqpnyz6bx9757lspiii1zzn8zfbqsvn2ipzpgqkxv6kaz"))))
+                "02xx6bqxzgkvrawwnzrnxx1ypk244q4kpwfd58266f9ji8kq18h6"))))
     (build-system gnu-build-system)
     (inputs
      `(("libuuid" ,util-linux)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 16da879c3f..95cdd5c513 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -2191,6 +2191,11 @@ and check if the WLAN key or the master key was transmitted unencrypted.")
         (base32
          "19rqzj167q73ag20zxpvswhkk0bj56r5maf83v5016sw7vrcz5sc"))))
     (build-system gnu-build-system)
+    (arguments
+     ;; XXX: The dynamic socks library doesn't work with 'libc.so' (GNU ld
+     ;; script).  When preloading is enabled, 'sockd' failed with:
+     ;;    … Failed to open library "libc.so": …: invalid ELF header
+     '(#:configure-flags '("--disable-preload")))
     (home-page "https://www.inet.no/dante/")
     (synopsis "SOCKS server and client")
     (description "Dante is a SOCKS client and server implementation.  It can
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index a7fe44243a..ec1fae6470 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -48,7 +48,7 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20180722")
+    (version "20180822")
     (source
      (origin
       (method url-fetch)
@@ -56,7 +56,7 @@
                           version ".tar.bz2"))
       (sha256
        (base32
-        "06635p9w4kl0mvqlbgglsndl1zm06f65ckzrjl9p8n4cswf443fg"))))
+        "0jjs7fpvdjjb5v0j39a6k7hq9h5ap3db1j7vg1r2dq4swk23h9bm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index b9653693c6..a63fd9bb36 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -100,7 +100,7 @@ human.")
 (define-public keepassxc
   (package
     (name "keepassxc")
-    (version "2.3.3")
+    (version "2.3.4")
     (source
      (origin
        (method url-fetch)
@@ -109,27 +109,17 @@ human.")
                            version "-src.tar.xz"))
        (sha256
         (base32
-         "1m8alsp39vk21zgcvy5zswk0dc1xmajbwnccg7n0lndsi7pqbzyg"))))
+         "02kq0a7a7hpw824n03apma00yq1c6dds224g15mrnnqqjn4af90c"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DWITH_XC_NETWORKING=YES"
                            "-DWITH_XC_BROWSER=YES"
-                           "-DWITH_XC_SSHAGENT=YES")
-       #:phases
-       (modify-phases %standard-phases
-         ;; should be fixed in 2.3.3+, see:
-         ;; https://github.com/keepassxreboot/keepassxc/pull/1964
-         (add-after 'unpack 'patch-sources
-           (lambda _
-             (substitute* "src/gui/entry/EditEntryWidget.cpp"
-               (("#include <QColorDialog>") "#include <QColorDialog>
-#include <QButtonGroup>"))
-             #t)))))
+                           "-DWITH_XC_SSHAGENT=YES")))
     (inputs
      `(("argon2" ,argon2)
-       ("curl" ,curl) ; XC_NETWORKING
+       ("curl" ,curl)                   ; XC_NETWORKING
        ("libgcrypt" ,libgcrypt)
-       ("libsodium" ,libsodium) ; XC_BROWSER
+       ("libsodium" ,libsodium)         ; XC_BROWSER
        ("libxi" ,libxi)
        ("libxtst" ,libxtst)
        ("qtbase" ,qtbase)
@@ -144,7 +134,7 @@ manage your passwords in a secure way.  You can put all your passwords in one
 database, which is locked with one master key or a key-file which can be stored
 on an external storage device.  The databases are encrypted using the
 algorithms AES or Twofish.")
-    ;; Non functional parts use various licences.
+    ;; Non-functional parts use various licences.
     (license license:gpl3)))
 
 (define-public keepassx
diff --git a/gnu/packages/patches/byobu-writable-status.patch b/gnu/packages/patches/byobu-writable-status.patch
index 2858280273..31dc1f2fd3 100644
--- a/gnu/packages/patches/byobu-writable-status.patch
+++ b/gnu/packages/patches/byobu-writable-status.patch
@@ -1,13 +1,13 @@
 Skeleton status files are installed read-only.  When copying to the config dir
 upon initialization, make sure they end up writable.
 
---- byobu-5.98/usr/bin/byobu-janitor.in
-+++ byobu-5.98/usr/bin/byobu-janitor.in
+--- byobu-5.127/usr/bin/byobu-janitor.in
++++ byobu-5.127/usr/bin/byobu-janitor.in
 @@ -82,6 +82,7 @@
  	if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then
  		# Copy from skeleton, if possible
  		cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f"
 +		chmod +w "$BYOBU_CONFIG_DIR/$f"
- 		# Enable ec2_cost, if we're in ec2 and seeding a new setup
- 		if metadata_available; then
- 			$BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)"
+ 	fi
+ done
+ 
diff --git a/gnu/packages/patches/openssh-CVE-2018-15473.patch b/gnu/packages/patches/openssh-CVE-2018-15473.patch
deleted file mode 100644
index 26b2dc59c3..0000000000
--- a/gnu/packages/patches/openssh-CVE-2018-15473.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-Fix CVE-2018-15473, a method by which remote clients can enumerate
-usernames on the server:
-
-http://seclists.org/oss-sec/2018/q3/124
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15473
-
-Patch adapted from upstream source repository:
-
-https://anongit.mindrot.org/openssh.git/commit/?id=74287f5df9966a0648b4a68417451dd18f079ab8
-
-From 74287f5df9966a0648b4a68417451dd18f079ab8 Mon Sep 17 00:00:00 2001
-From: "djm@openbsd.org" <djm@openbsd.org>
-Date: Tue, 31 Jul 2018 03:10:27 +0000
-Subject: [PATCH] upstream: delay bailout for invalid authentic
-
-=?UTF-8?q?ating=20user=20until=20after=20the=20packet=20containing=20the?=
-=?UTF-8?q?=20request=20has=20been=20fully=20parsed.=20Reported=20by=20Dar?=
-=?UTF-8?q?iusz=20Tytko=20and=20Micha=C5=82=20Sajdak;=20ok=20deraadt?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-OpenBSD-Commit-ID: b4891882fbe413f230fe8ac8a37349b03bd0b70d
----
- auth2-gss.c       | 11 +++++++----
- auth2-hostbased.c | 11 ++++++-----
- auth2-pubkey.c    | 25 +++++++++++++++----------
- 3 files changed, 28 insertions(+), 19 deletions(-)
-
-# Adapted from upstream to apply to OpenSSH 7.7p1.
-diff --git a/auth2-gss.c b/auth2-gss.c
-index 589283b7..1d7cfb39 100644
---- a/auth2-gss.c
-+++ b/auth2-gss.c
-@@ -69,9 +69,6 @@ userauth_gssapi(struct ssh *ssh)
- 	u_int len;
- 	u_char *doid = NULL;
- 
--	if (!authctxt->valid || authctxt->user == NULL)
--		return (0);
--
- 	mechs = packet_get_int();
- 	if (mechs == 0) {
- 		debug("Mechanism negotiation is not supported");
-diff --git a/auth2-gss.c b/auth2-gss.c
-index 47308c5c..9351e042 100644
---- a/auth2-gss.c
-+++ b/auth2-gss.c
-@@ -106,6 +103,12 @@ userauth_gssapi(struct ssh *ssh)
- 		return (0);
- 	}
- 
-+	if (!authctxt->valid || authctxt->user == NULL) {
-+		debug2("%s: disabled because of invalid user", __func__);
-+		free(doid);
-+		return (0);
-+	}
-+
- 	if (GSS_ERROR(PRIVSEP(ssh_gssapi_server_ctx(&ctxt, &goid)))) {
- 		if (ctxt != NULL)
- 			ssh_gssapi_delete_ctx(&ctxt);
-diff --git a/auth2-hostbased.c b/auth2-hostbased.c
-index 60159a56..35939329 100644
---- a/auth2-hostbased.c
-+++ b/auth2-hostbased.c
-@@ -67,10 +67,6 @@ userauth_hostbased(struct ssh *ssh)
- 	size_t alen, blen, slen;
- 	int r, pktype, authenticated = 0;
- 
--	if (!authctxt->valid) {
--		debug2("%s: disabled because of invalid user", __func__);
--		return 0;
--	}
- 	/* XXX use sshkey_froms() */
- 	if ((r = sshpkt_get_cstring(ssh, &pkalg, &alen)) != 0 ||
- 	    (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0 ||
-@@ -117,6 +113,11 @@ userauth_hostbased(struct ssh *ssh)
- 		goto done;
- 	}
- 
-+	if (!authctxt->valid || authctxt->user == NULL) {
-+		debug2("%s: disabled because of invalid user", __func__);
-+		goto done;
-+	}
-+
- 	if ((b = sshbuf_new()) == NULL)
- 		fatal("%s: sshbuf_new failed", __func__);
- 	/* reconstruct packet */
-diff --git a/auth2-pubkey.c b/auth2-pubkey.c
-index c4d0f790..e1c15040 100644
---- a/auth2-pubkey.c
-+++ b/auth2-pubkey.c
-@@ -89,19 +89,15 @@ userauth_pubkey(struct ssh *ssh)
- {
- 	Authctxt *authctxt = ssh->authctxt;
- 	struct passwd *pw = authctxt->pw;
--	struct sshbuf *b;
-+	struct sshbuf *b = NULL;
- 	struct sshkey *key = NULL;
--	char *pkalg, *userstyle = NULL, *key_s = NULL, *ca_s = NULL;
--	u_char *pkblob, *sig, have_sig;
-+	char *pkalg = NULL, *userstyle = NULL, *key_s = NULL, *ca_s = NULL;
-+	u_char *pkblob = NULL, *sig = NULL, have_sig;
- 	size_t blen, slen;
- 	int r, pktype;
- 	int authenticated = 0;
- 	struct sshauthopt *authopts = NULL;
- 
--	if (!authctxt->valid) {
--		debug2("%s: disabled because of invalid user", __func__);
--		return 0;
--	}
- 	if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 ||
- 	    (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
- 	    (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0)
-@@ -167,6 +163,11 @@ userauth_pubkey(struct ssh *ssh)
- 				fatal("%s: sshbuf_put_string session id: %s",
- 				    __func__, ssh_err(r));
- 		}
-+		if (!authctxt->valid || authctxt->user == NULL) {
-+			debug2("%s: disabled because of invalid user",
-+			    __func__);
-+			goto done;
-+		}
- 		/* reconstruct packet */
- 		xasprintf(&userstyle, "%s%s%s", authctxt->user,
- 		    authctxt->style ? ":" : "",
-@@ -183,7 +184,6 @@ userauth_pubkey(struct ssh *ssh)
- #ifdef DEBUG_PK
- 		sshbuf_dump(b, stderr);
- #endif
--
- 		/* test for correct signature */
- 		authenticated = 0;
- 		if (PRIVSEP(user_key_allowed(ssh, pw, key, 1, &authopts)) &&
-@@ -194,7 +194,6 @@ userauth_pubkey(struct ssh *ssh)
- 			authenticated = 1;
- 		}
- 		sshbuf_free(b);
--		free(sig);
- 		auth2_record_key(authctxt, authenticated, key);
- 	} else {
- 		debug("%s: test pkalg %s pkblob %s%s%s",
-@@ -205,6 +204,11 @@ userauth_pubkey(struct ssh *ssh)
- 		if ((r = sshpkt_get_end(ssh)) != 0)
- 			fatal("%s: %s", __func__, ssh_err(r));
- 
-+		if (!authctxt->valid || authctxt->user == NULL) {
-+			debug2("%s: disabled because of invalid user",
-+			    __func__);
-+			goto done;
-+		}
- 		/* XXX fake reply and always send PK_OK ? */
- 		/*
- 		 * XXX this allows testing whether a user is allowed
-@@ -238,6 +242,7 @@ done:
- 	free(pkblob);
- 	free(key_s);
- 	free(ca_s);
-+	free(sig);
- 	return authenticated;
- }
- 
--- 
-2.18.0
diff --git a/gnu/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch b/gnu/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch
deleted file mode 100644
index 74613cb632..0000000000
--- a/gnu/packages/patches/perl-dbd-mysql-CVE-2017-10788.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Fix CVE-2017-10788:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10788
-
-Patch written to match corrected documentation specifications:
-
-Old: http://web.archive.org/web/20161220021610/https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-close.html
-New: https://dev.mysql.com/doc/refman/5.7/en/mysql-stmt-close.html
-
-The patch itself is from https://github.com/perl5-dbi/DBD-mysql/issues/120#issuecomment-312420660.
-
-From 9ce10cfae7138c37c3a0cb2ba2a1d682482943d0 Mon Sep 17 00:00:00 2001
-From: Pali <pali@cpan.org>
-Date: Sun, 25 Jun 2017 10:07:39 +0200
-Subject: [PATCH] Fix use-after-free after calling mysql_stmt_close()
-
-Ignore return value from mysql_stmt_close() and also its error message
-because it points to freed memory after mysql_stmt_close() was called.
----
- dbdimp.c |    8 ++------
- mysql.xs |    7 ++-----
- 2 files changed, 4 insertions(+), 11 deletions(-)
-
-diff --git a/dbdimp.c b/dbdimp.c
-index c60a5f6..a6410e5 100644
---- a/dbdimp.c
-+++ b/dbdimp.c
-@@ -4894,12 +4894,8 @@ void dbd_st_destroy(SV *sth, imp_sth_t *imp_sth) {
-
-   if (imp_sth->stmt)
-   {
--    if (mysql_stmt_close(imp_sth->stmt))
--    {
--      do_error(DBIc_PARENT_H(imp_sth), mysql_stmt_errno(imp_sth->stmt),
--          mysql_stmt_error(imp_sth->stmt),
--          mysql_stmt_sqlstate(imp_sth->stmt));
--    }
-+    mysql_stmt_close(imp_sth->stmt);
-+    imp_sth->stmt= NULL;
-   }
- #endif
-
-diff --git a/mysql.xs b/mysql.xs
-index 55376e1..affde59 100644
---- a/mysql.xs
-+++ b/mysql.xs
-@@ -434,11 +434,8 @@ do(dbh, statement, attr=Nullsv, ...)
-       if (bind)
-         Safefree(bind);
-
--      if(mysql_stmt_close(stmt))
--      {
--        fprintf(stderr, "\n failed while closing the statement");
--        fprintf(stderr, "\n %s", mysql_stmt_error(stmt));
--      }
-+      mysql_stmt_close(stmt);
-+      stmt= NULL;
-
-       if (retval == -2) /* -2 means error */
-       {
---
-1.7.9.5
diff --git a/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch b/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch
new file mode 100644
index 0000000000..961a183565
--- /dev/null
+++ b/gnu/packages/patches/soundtouch-CVE-2018-1000223.patch
@@ -0,0 +1,143 @@
+Fix CVE-2018-1000223:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000223
+https://gitlab.com/soundtouch/soundtouch/issues/6
+
+Patches copied from upstream source repository:
+
+https://gitlab.com/soundtouch/soundtouch/commit/9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e
+https://gitlab.com/soundtouch/soundtouch/commit/e0240689056e4182fffdc2a16aa6e3425a15e275
+https://gitlab.com/soundtouch/soundtouch/commit/46531e5b92dd80dd9a7947463d6224fc7cb21967
+
+From 9e02d9b04fda6c1f44336ff00bb5af1e2ffc039e Mon Sep 17 00:00:00 2001
+From: oparviainen <oparviai@iki.fi>
+Date: Sun, 12 Aug 2018 20:24:37 +0300
+Subject: [PATCH] Added minimum size check for WAV header block lengh values
+
+---
+ source/SoundStretch/WavFile.cpp | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/source/SoundStretch/WavFile.cpp b/source/SoundStretch/WavFile.cpp
+index 7e7ade2..68818c9 100644
+--- a/source/SoundStretch/WavFile.cpp
++++ b/source/SoundStretch/WavFile.cpp
+@@ -530,7 +530,11 @@ int WavInFile::readHeaderBlock()
+         // read length of the format field

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

+         // swap byte order if necessary

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

++        _swap32(nLen);

++

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

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

++

+         header.format.format_len = nLen;

+ 

+         // calculate how much length differs from expected

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

+         // swap byte order if necessary

+         _swap32(nLen); // int fact_len;

++

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

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

++

+         header.fact.fact_len = nLen;

+ 

+         // calculate how much length differs from expected

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

+         _swap32(nLen);

+ 

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

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

++        // calculate how much length differs from expected 

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

+ 

+-        header.format.format_len = nLen;

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

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

+ 

+-        // calculate how much length differs from expected

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

++        header.format.format_len = nLen;

+ 

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

+         if (nDump > 0)

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

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

+         // swap byte order if necessary

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

+-

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

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

+-

+-        header.fact.fact_len = nLen;

++        _swap32(nLen);

+ 

+         // calculate how much length differs from expected

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

+ 

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

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

++

++        header.fact.fact_len = nLen;

++

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

+         if (nDump > 0)

+         {

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

+ 

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

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

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

+ 

+         header.format.format_len = nLen;

+ 

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

+ 

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

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

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

+ 

+         header.fact.fact_len = nLen;

+ 

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

+ class FIFOSamplePipe

+ {

++protected:

++

++    bool verifyNumberOfChannels(int nChannels) const

++    {

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

++        {

++            return true;

++        }

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

++        return false;

++    }

++

+ public:

+     // virtual default destructor

+     virtual ~FIFOSamplePipe() {}

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

+ namespace soundtouch

+ {

++    /// Max allowed number of channels

++    #define SOUNDTOUCH_MAX_CHANNELS     16

++

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

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

+     //#undef SOUNDTOUCH_INTEGER_SAMPLES

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

+     uint usedBytes;

+ 

+-    assert(numChannels > 0);

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

++

+     usedBytes = channels * samplesInBuffer;

+     channels = (uint)numChannels;

+     samplesInBuffer = usedBytes / channels;

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

+ void RateTransposer::setChannels(int nChannels)

+ {

+-    assert(nChannels > 0);

++    if (!verifyNumberOfChannels(nChannels) ||

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

+ 

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

+     pTransposer->setChannels(nChannels);

+-

+     inputBuffer.setChannels(nChannels);

+     midBuffer.setChannels(nChannels);

+     outputBuffer.setChannels(nChannels);

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

+ void SoundTouch::setChannels(uint numChannels)

+ {

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

+-    {

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

+-        return;

+-    }*/

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

++

+     channels = numChannels;

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

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

+ }

+ 

+ 

+-

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

+ // represent slower rate, larger faster rates.

+ void SoundTouch::setRate(double newRate)

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

+ void TDStretch::setChannels(int numChannels)

+ {

+-    assert(numChannels > 0);

+-    if (channels == numChannels) return;

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

++    if (!verifyNumberOfChannels(numChannels) ||

++        (channels == numChannels)) return;

+ 

+     channels = numChannels;

+     inputBuffer.setChannels(channels);

+-- 
+2.18.0
+
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 39d8931c13..3c46102da1 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -8667,33 +8667,32 @@ CloudFront content delivery network.")
 (define-public python-pkgconfig
   (package
     (name "python-pkgconfig")
-    (version "1.1.0")
+    (version "1.3.1")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pkgconfig" version))
         (sha256
           (base32
-            "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh"))))
+            "107x2wmchlch8saixb488cgjz9n6inl38wi7nxkb942rbaapxiqb"))))
     (build-system python-build-system)
     (native-inputs
       `(("python-nose" ,python-nose)))
     (inputs
       `(("pkg-config" ,pkg-config)))
     (arguments
-      `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3,
-        ;; and on Python 2 they need the dl module deprecated since Python 2.6.
-        #:tests? #f
-        ;; Hard-code the path to pkg-config.
-        #:phases
+      `(#:phases
         (modify-phases %standard-phases
-          (add-before
-           'build 'patch
-           (lambda _
-             (substitute* "pkgconfig/pkgconfig.py"
-               (("cmd = 'pkg-config")
-                (string-append "cmd = '" (which "pkg-config"))))
-             #t)))))
+          (add-before 'build 'patch
+            ;; Hard-code the path to pkg-config.
+            (lambda _
+              (substitute* "pkgconfig/pkgconfig.py"
+                (("cmd = 'pkg-config")
+                 (string-append "cmd = '" (which "pkg-config"))))
+              #t))
+          (replace 'check
+            (lambda _
+              (invoke "nosetests" "test.py"))))))
     (home-page "https://github.com/matze/pkgconfig")
     (synopsis "Python interface for pkg-config")
     (description "This module provides a Python interface to pkg-config.  It
diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm
index 940afcc2d5..38df2594f2 100644
--- a/gnu/packages/screen.scm
+++ b/gnu/packages/screen.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,7 +102,7 @@ controlling terminal and attach to it later.")
 (define-public byobu
   (package
     (name "byobu")
-    (version "5.98")
+    (version "5.127")
     (source
      (origin
        (method url-fetch)
@@ -111,11 +111,11 @@ controlling terminal and attach to it later.")
                            version ".orig.tar.gz"))
        (sha256
         (base32
-         "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5"))
+         "0fznlj454vgxgzfw3avmvvjpawggs66da5l8k6v0lnzzd75wgbsb"))
        (patches (search-patches "byobu-writable-status.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("python" ,python-wrapper)       ;for config and session GUIs
+     `(("python" ,python-wrapper)       ; for config and session GUIs
        ("python-newt" ,newt "python")))
     (arguments
      `(#:phases
@@ -123,7 +123,7 @@ controlling terminal and attach to it later.")
          (add-before
           'configure 'provide-locale
           (lambda* (#:key inputs #:allow-other-keys)
-            (let ((libc   (assoc-ref inputs "libc"))) ;implicit input
+            (let ((libc (assoc-ref inputs "libc"))) ; implicit input
               (substitute* "usr/bin/byobu.in"
                 (("locale") (string-append libc "/bin/locale")))
               #t)))
@@ -141,7 +141,7 @@ controlling terminal and attach to it later.")
               (wrap-program select
                 `("BYOBU_PYTHON" = (,python)))
               #t))))))
-    (home-page "http://byobu.co/index.html")
+    (home-page "https://byobu.org/")
     (synopsis "Text-based window manager and terminal multiplexer")
     (description
      "Byobu is a Japanese term for decorative, multi-panel screens that serve
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index d4e0437a5b..4b748b6644 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -274,7 +274,7 @@ authentication, encryption and digital signatures.  OpenSC implements the PKCS
 (define-public yubico-piv-tool
   (package
     (name "yubico-piv-tool")
-    (version "1.6.0")
+    (version "1.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -282,7 +282,7 @@ authentication, encryption and digital signatures.  OpenSC implements the PKCS
                     name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1p0df35qfm2xch64hc1x6k4gpgfl4hiqph5ai30bq8w7yxa3lvfc"))))
+                "10xgdc51xvszkxmsvqnbjs8ixxz7rfnfahh3wn8glllynmszbhwi"))))
     (build-system gnu-build-system)
     (inputs
      `(("gengetopt" ,gengetopt)
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 0d9bd5a119..a58ebff481 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -148,15 +148,14 @@ a server that supports the SSH-2 protocol.")
 (define-public openssh
   (package
    (name "openssh")
-   (version "7.7p1")
+   (version "7.8p1")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://openbsd/OpenSSH/portable/"
                                  name "-" version ".tar.gz"))
-             (patches (search-patches "openssh-CVE-2018-15473.patch"))
              (sha256
               (base32
-               "13vbbrvj3mmfhj83qyrg5c0ipr6bzw5s65dy4k8gr7p9hkkfffyp"))))
+               "1jj4f586r9lhakp2w0zv7j616d6x62m15q8l4nxq7haja6qlnj0s"))))
    (build-system gnu-build-system)
    (native-inputs `(("groff" ,groff)))
    (inputs `(("openssl" ,openssl)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 9f76ff3677..5c01a4ae06 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -725,13 +725,13 @@ effects of different types of color-blindness.")
 (define-public r-digest
   (package
     (name "r-digest")
-    (version "0.6.15")
+    (version "0.6.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "digest" version))
        (sha256
-        (base32 "1ia4ak956gnn0f5aqhwgam6g9z6f1y57zz8jv45jc8h79yxp8bl8"))))
+        (base32 "1lhs59pdjhpb63jyy98pi1shk9shw044k6vl0mvw0f40v08326ar"))))
     (build-system r-build-system)
     ;; Vignettes require r-knitr, which requires r-digest, so we have to
     ;; disable them and the tests.
@@ -1619,13 +1619,13 @@ and printing capabilities than traditional data frames.")
 (define-public r-dplyr
   (package
     (name "r-dplyr")
-    (version "0.7.5")
+    (version "0.7.6")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "dplyr" version))
               (sha256
                (base32
-                "0l6smzdgb8w505gyl8gnwlg988a6cmafh3rssiv00rsrd8qqzg9g"))))
+                "0c43h13s5mr0fklikbbm89gs6z5n66rkjzdv6w3w6kl5af5wr2fl"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-assertthat" ,r-assertthat)
@@ -2364,13 +2364,13 @@ informative error messages when it's not available.")
 (define-public r-devtools
   (package
     (name "r-devtools")
-    (version "1.13.5")
+    (version "1.13.6")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "devtools" version))
               (sha256
                (base32
-                "1x3wsk7dh3yakii61kbfvafx9yz66h40ixiwfkf03dnp2n24hngs"))))
+                "1d9n49djydywfyp9w3njgxs5lag4ac7719wmxy1lkgcmn3l9sx5r"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-digest" ,r-digest)
@@ -2562,13 +2562,13 @@ vectors.")
 (define-public r-catools
   (package
     (name "r-catools")
-    (version "1.17.1")
+    (version "1.17.1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "caTools" version))
               (sha256
                (base32
-                "1x4szsn2qmbzpyjfdaiz2q7jwhap2gky9wq0riah74q0pzz76ank"))))
+                "01hccp05gz25vhz9nnxv1c91lrxlr7drcw9xf124gggifxf2qgnm"))))
     (properties `((upstream-name . "caTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3323,14 +3323,14 @@ bigmemory and synchronicity packages.")
 (define-public r-synchronicity
   (package
     (name "r-synchronicity")
-    (version "1.3.4")
+    (version "1.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "synchronicity" version))
        (sha256
         (base32
-         "1km5hx82gy71m5nc6pkcksv0dn32fylhg2axpdsnarrxva14mgdg"))))
+         "1kgsk64aifjm3mfj102y3va7x1abypq2zi0cqbnjhl8fqyzp69hx"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-bh" ,r-bh)
@@ -4851,14 +4851,14 @@ multivariate analysis.")
 (define-public r-trimcluster
   (package
     (name "r-trimcluster")
-    (version "0.1-2")
+    (version "0.1-2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "trimcluster" version))
        (sha256
         (base32
-         "0lsgbg93hm0w1rdb813ry0ks2l0jfpyqzqkf3h3bj6fch0avcbv2"))))
+         "0013bpyq6mkvjn38qsmwnsxfiwxgwngnqxycxvgpgmiadhm8fjmn"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/trimcluster")
     (synopsis "Cluster analysis with trimming")
@@ -5172,14 +5172,14 @@ Companion to Applied Regression, Third Edition, Sage.")
 (define-public r-car
   (package
     (name "r-car")
-    (version "3.0-0")
+    (version "3.0-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
         (base32
-         "1ks2jaav8lbxhzw56vpbnysjk3pvpmqh6avd574k0bha1226k81h"))))
+         "0rdk7hgahs38j6yv861i31wpmsmyvksxcv8jarvvcjl60whizhb2"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-abind" ,r-abind)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index b7c8736339..5e0b497ace 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1779,7 +1780,7 @@ be served with a HTTP file server of your choice.")
 (define-public darcs
   (package
     (name "darcs")
-    (version "2.12.5")
+    (version "2.14.1")
     (source
      (origin
        (method url-fetch)
@@ -1787,7 +1788,7 @@ be served with a HTTP file server of your choice.")
                            "darcs-" version ".tar.gz"))
        (sha256
         (base32
-         "0lrm0sal5pl453mkqn8b9fc9l7lwinc140iqihya9g17bk408nrm"))
+         "0dfd6bp2wy0aabxx7l93gi3dmq21j970cds424xdy1mgmjcvrpb1"))
        (modules '((guix build utils)))
        ;; Remove time-dependent code for reproducibility.
        (snippet
@@ -1795,18 +1796,19 @@ be served with a HTTP file server of your choice.")
            (substitute* "darcs/darcs.hs"
              (("__DATE__") "\"1970-01-01\"")
              (("__TIME__") "\"00:00:00\""))
-           (substitute* "src/impossible.h"
-             (("__DATE__") "\"\"")
-             (("__TIME__") "\"\""))
            #t))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
                            "-fnetwork-uri" "-fhttp" "--flag=executable"
-                           "--flag=library"
-                           "--allow-newer=shelly")
-       ;; FIXME: darcs is not compatible with the latest QuickCheck
-       #:tests? #f))
+                           "--flag=library")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'patch-source-shebangs 'patch-sh
+           (lambda _
+             (substitute* "tests/issue538.sh"
+               (("/bin/sh") (which "sh")))
+             #t)))))
     (inputs
      `(("ghc-cmdargs" ,ghc-cmdargs)
        ("ghc-split" ,ghc-split)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3d9b1695b6..aea75654be 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -27,6 +27,7 @@
 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6780,3 +6781,26 @@ compressed JSON header blocks.
 provided by Guix.  The list of packages is searchable and provides
 instructions on how to use Guix in a shared HPC environment.")
     (license l:agpl3+))))
+
+(define-public r-miniui
+  (package
+    (name "r-miniui")
+    (version "0.1.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "miniUI" version))
+       (sha256
+        (base32
+         "1h5h2sc57h95d6bsgs95l26911g38hvjc1v50bc31xl9689l2as5"))))
+    (properties `((upstream-name . "miniUI")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-htmltools" ,r-htmltools)
+       ("r-shiny" ,r-shiny)))
+    (home-page "https://cran.r-project.org/web/packages/miniUI/")
+    (synopsis "Shiny UI widgets for small screens")
+    (description
+     "This package provides UI widget and layout functions for writing Shiny apps that
+work well on small screens.")
+    (license l:gpl3)))
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 0f3d227732..9c1257b2a1 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
@@ -226,38 +228,38 @@ integrate Windows applications into your desktop.")
    (version "3.14")
    (source
     (origin
-     (method url-fetch)
-     (uri (string-append "https://github.com/wine-staging/wine-staging/archive/v"
-                         version ".zip"))
-     (file-name (string-append name "-" version ".zip"))
-     (sha256
-      (base32
-       "1w3n90ab3xyhdzxw1mnkp2cw76lpm5l75hy9xkw3kz2fwzq6lwz7"))))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/wine-staging/wine-staging")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32
+        "0h6gck0p92hin0m13q1hnlfnqs4vy474w66ppinvqms2zn3vibgi"))))
    (build-system trivial-build-system)
    (native-inputs
     `(("bash" ,bash)
-      ("coreutils" ,coreutils)
-      ("unzip" ,unzip)))
+      ("coreutils" ,coreutils)))
    (arguments
     `(#:modules ((guix build utils))
       #:builder
       (begin
         (use-modules (guix build utils))
-        (let* ((out (assoc-ref %outputs "out"))
-               (wine-staging (string-append out "/share/wine-staging"))
+        (let* ((build-directory ,(string-append name "-" version))
                (source (assoc-ref %build-inputs "source"))
-               (sh (string-append (assoc-ref %build-inputs "bash") "/bin/bash"))
-               (env (string-append (assoc-ref %build-inputs "coreutils") "/bin/env"))
-               (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
-          (copy-file source (string-append ,name "-" ,version ".zip"))
-          (invoke unzip (string-append ,name "-" ,version ".zip"))
-          (substitute* (string-append "wine-staging-" ,version
-                                      "/patches/patchinstall.sh") (("/bin/sh") sh))
-          (substitute* (string-append "wine-staging-" ,version
-                                      "/patches/gitapply.sh") (("/usr/bin/env") env))
-          (mkdir-p wine-staging)
-          (copy-recursively (string-append "wine-staging-" ,version)
-                            wine-staging)
+               (bash (assoc-ref %build-inputs "bash"))
+               (coreutils (assoc-ref %build-inputs "coreutils"))
+               (out (assoc-ref %outputs "out"))
+               (wine-staging (string-append out "/share/wine-staging")))
+          (copy-recursively source build-directory)
+          (with-directory-excursion build-directory
+            (substitute* "patches/patchinstall.sh"
+              (("/bin/sh")
+               (string-append bash "/bin/sh")))
+            (substitute* "patches/gitapply.sh"
+              (("/usr/bin/env")
+               (string-append coreutils "/bin/env"))))
+          (copy-recursively build-directory wine-staging)
           #t))))
    (home-page "https://github.com/wine-staging")
    (synopsis "Patchset for Wine")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 0a78b8ee70..3875765d25 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5239,6 +5239,7 @@ draggable titlebars and borders.")
   (package
     (name "libx11")
     (version "1.6.5")
+    (replacement libx11-1.6.6)
     (source
       (origin
         (method url-fetch)
@@ -5268,6 +5269,20 @@ draggable titlebars and borders.")
     (description "Xorg Core X11 protocol client library.")
     (license license:x11)))
 
+;; Replacement package to fix multiple security bugs:
+;; <http://seclists.org/oss-sec/2018/q3/146>.
+(define-public libx11-1.6.6
+  (package
+    (inherit libx11)
+    (version "1.6.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://xorg/individual/lib/libX11-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "0ks1mxlda7nxfmffihi15ljsn50q8dknl33i2xag8xzc80fiizk5"))))))
+
 ;; packages of height 5 in the propagated-inputs tree
 
 (define-public libxcursor
diff --git a/guix/build/debug-link.scm b/guix/build/debug-link.scm
new file mode 100644
index 0000000000..9167737fb3
--- /dev/null
+++ b/guix/build/debug-link.scm
@@ -0,0 +1,210 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build debug-link)
+  #:use-module (guix elf)
+  #:use-module ((guix build utils)
+                #:select (find-files elf-file? make-file-writable))
+  #:use-module (rnrs bytevectors)
+  #:use-module (rnrs io ports)
+  #:use-module (srfi srfi-1)
+  #:use-module (system foreign)
+  #:use-module (ice-9 match)
+  #:export (debuglink-crc32
+            elf-debuglink
+            set-debuglink-crc
+
+            graft-debug-links))
+
+;;; Commentary:
+;;;
+;;; This module provides tools to deal with '.gnu_debuglink' sections in ELF
+;;; files.  These sections are created by 'objcopy --add-gnu-debuglink' to
+;;; create separate debug files (info "(gdb) Separate Debug Files").
+;;;
+;;; The main facility of this module is 'graft-debug-links', which allows us
+;;; to update the CRC that appears in '.gnu_debuglink' sections when grafting,
+;;; such that separate debug files remain usable after grafting.  Failing to
+;;; do that, GDB would complain about CRC mismatch---see
+;;; <https://bugs.gnu.org/19973>.
+;;;
+;;; Code:
+
+(define %crc32-table
+  ;; CRC table taken from "(gdb) Separate Debug Files".
+  ;; TODO: Wouldn't it be nice to generate it "from source" with a macro?
+  #(#x00000000 #x77073096 #xee0e612c #x990951ba #x076dc419
+    #x706af48f #xe963a535 #x9e6495a3 #x0edb8832 #x79dcb8a4
+    #xe0d5e91e #x97d2d988 #x09b64c2b #x7eb17cbd #xe7b82d07
+    #x90bf1d91 #x1db71064 #x6ab020f2 #xf3b97148 #x84be41de
+    #x1adad47d #x6ddde4eb #xf4d4b551 #x83d385c7 #x136c9856
+    #x646ba8c0 #xfd62f97a #x8a65c9ec #x14015c4f #x63066cd9
+    #xfa0f3d63 #x8d080df5 #x3b6e20c8 #x4c69105e #xd56041e4
+    #xa2677172 #x3c03e4d1 #x4b04d447 #xd20d85fd #xa50ab56b
+    #x35b5a8fa #x42b2986c #xdbbbc9d6 #xacbcf940 #x32d86ce3
+    #x45df5c75 #xdcd60dcf #xabd13d59 #x26d930ac #x51de003a
+    #xc8d75180 #xbfd06116 #x21b4f4b5 #x56b3c423 #xcfba9599
+    #xb8bda50f #x2802b89e #x5f058808 #xc60cd9b2 #xb10be924
+    #x2f6f7c87 #x58684c11 #xc1611dab #xb6662d3d #x76dc4190
+    #x01db7106 #x98d220bc #xefd5102a #x71b18589 #x06b6b51f
+    #x9fbfe4a5 #xe8b8d433 #x7807c9a2 #x0f00f934 #x9609a88e
+    #xe10e9818 #x7f6a0dbb #x086d3d2d #x91646c97 #xe6635c01
+    #x6b6b51f4 #x1c6c6162 #x856530d8 #xf262004e #x6c0695ed
+    #x1b01a57b #x8208f4c1 #xf50fc457 #x65b0d9c6 #x12b7e950
+    #x8bbeb8ea #xfcb9887c #x62dd1ddf #x15da2d49 #x8cd37cf3
+    #xfbd44c65 #x4db26158 #x3ab551ce #xa3bc0074 #xd4bb30e2
+    #x4adfa541 #x3dd895d7 #xa4d1c46d #xd3d6f4fb #x4369e96a
+    #x346ed9fc #xad678846 #xda60b8d0 #x44042d73 #x33031de5
+    #xaa0a4c5f #xdd0d7cc9 #x5005713c #x270241aa #xbe0b1010
+    #xc90c2086 #x5768b525 #x206f85b3 #xb966d409 #xce61e49f
+    #x5edef90e #x29d9c998 #xb0d09822 #xc7d7a8b4 #x59b33d17
+    #x2eb40d81 #xb7bd5c3b #xc0ba6cad #xedb88320 #x9abfb3b6
+    #x03b6e20c #x74b1d29a #xead54739 #x9dd277af #x04db2615
+    #x73dc1683 #xe3630b12 #x94643b84 #x0d6d6a3e #x7a6a5aa8
+    #xe40ecf0b #x9309ff9d #x0a00ae27 #x7d079eb1 #xf00f9344
+    #x8708a3d2 #x1e01f268 #x6906c2fe #xf762575d #x806567cb
+    #x196c3671 #x6e6b06e7 #xfed41b76 #x89d32be0 #x10da7a5a
+    #x67dd4acc #xf9b9df6f #x8ebeeff9 #x17b7be43 #x60b08ed5
+    #xd6d6a3e8 #xa1d1937e #x38d8c2c4 #x4fdff252 #xd1bb67f1
+    #xa6bc5767 #x3fb506dd #x48b2364b #xd80d2bda #xaf0a1b4c
+    #x36034af6 #x41047a60 #xdf60efc3 #xa867df55 #x316e8eef
+    #x4669be79 #xcb61b38c #xbc66831a #x256fd2a0 #x5268e236
+    #xcc0c7795 #xbb0b4703 #x220216b9 #x5505262f #xc5ba3bbe
+    #xb2bd0b28 #x2bb45a92 #x5cb36a04 #xc2d7ffa7 #xb5d0cf31
+    #x2cd99e8b #x5bdeae1d #x9b64c2b0 #xec63f226 #x756aa39c
+    #x026d930a #x9c0906a9 #xeb0e363f #x72076785 #x05005713
+    #x95bf4a82 #xe2b87a14 #x7bb12bae #x0cb61b38 #x92d28e9b
+    #xe5d5be0d #x7cdcefb7 #x0bdbdf21 #x86d3d2d4 #xf1d4e242
+    #x68ddb3f8 #x1fda836e #x81be16cd #xf6b9265b #x6fb077e1
+    #x18b74777 #x88085ae6 #xff0f6a70 #x66063bca #x11010b5c
+    #x8f659eff #xf862ae69 #x616bffd3 #x166ccf45 #xa00ae278
+    #xd70dd2ee #x4e048354 #x3903b3c2 #xa7672661 #xd06016f7
+    #x4969474d #x3e6e77db #xaed16a4a #xd9d65adc #x40df0b66
+    #x37d83bf0 #xa9bcae53 #xdebb9ec5 #x47b2cf7f #x30b5ffe9
+    #xbdbdf21c #xcabac28a #x53b39330 #x24b4a3a6 #xbad03605
+    #xcdd70693 #x54de5729 #x23d967bf #xb3667a2e #xc4614ab8
+    #x5d681b02 #x2a6f2b94 #xb40bbe37 #xc30c8ea1 #x5a05df1b
+    #x2d02ef8d))
+
+(define (debuglink-crc32 port)
+  "Compute the 32-bit CRC used in in '.gnu_debuglink' over the data read from
+PORT and return it."                      ;(info "(gdb) Separate Debug Files")
+  (let loop ((crc #xffffffff))
+    (let ((byte (get-u8 port)))
+      (if (eof-object? byte)
+          (logand (lognot crc) #xffffffff)
+          (let* ((index (logand (logxor crc byte) #xff))
+                 (lhs   (vector-ref %crc32-table index)))
+            (loop (logxor lhs (ash crc -8))))))))
+
+(define (section-contents elf section)     ;XXX: copied from linux-modules.scm
+  "Return the contents of SECTION in ELF as a bytevector."
+  (let* ((contents (make-bytevector (elf-section-size section))))
+    (bytevector-copy! (elf-bytes elf) (elf-section-offset section)
+                      contents 0
+                      (elf-section-size section))
+    contents))
+
+(define null-terminated-bytevector->string
+  (compose pointer->string bytevector->pointer))
+
+(define (elf-debuglink elf)
+  "Return two values: the '.gnu_debuglink' file name of ELF and its CRC.
+Return #f for both if ELF lacks a '.gnu_debuglink' section."
+  (let ((section (elf-section-by-name elf ".gnu_debuglink")))
+    (if section
+        (let ((size       (elf-section-size section))
+              (bv         (section-contents elf section))
+              (endianness (elf-byte-order elf)))
+          (values (null-terminated-bytevector->string bv)
+                  (bytevector-u32-ref bv (- size 4) endianness)))
+        (values #f #f))))
+
+(define (elf-debuglink-crc-offset elf)
+  "Return the offset of the '.gnu_debuglink' 32-bit CRC, or #f if ELF lacks a
+'.gnu_debuglink' section."
+  (let ((section (elf-section-by-name elf ".gnu_debuglink")))
+    (and section
+         (+ (elf-section-offset section)
+            (elf-section-size section)
+            -4))))
+
+(define (set-debuglink-crc file debug-file)
+  "Compute the CRC of DEBUG-FILE and set it as the '.gnu_debuglink' CRC in
+FILE."
+  (let* ((elf    (parse-elf (call-with-input-file file get-bytevector-all)))
+         (offset (elf-debuglink-crc-offset elf)))
+    (and offset
+         (let* ((crc (call-with-input-file debug-file debuglink-crc32))
+                (bv  (make-bytevector 4)))
+           (bytevector-u32-set! bv 0 crc (elf-byte-order elf))
+           (let ((port (open file O_RDWR)))
+             (set-port-position! port offset)
+             (put-bytevector port bv)
+             (close-port port))))))
+
+
+;;;
+;;; Updating debuglink CRC.
+;;;
+
+(define (find-elf-files outputs)
+  "Return the list of ELF files found in OUTPUTS, a list of top-level store
+directories."
+  (define directories
+    (append-map (lambda (output)
+                  (list (string-append output "/bin")
+                        (string-append output "/sbin")
+                        (string-append output "/lib")
+                        (string-append output "/libexec")))
+                outputs))
+
+  (append-map (lambda (directory)
+                (filter elf-file?
+                        (with-error-to-port (%make-void-port "w")
+                          (lambda ()
+                            (find-files directory)))))
+              directories))
+
+(define* (graft-debug-links old-outputs new-outputs mapping
+                            #:key (log-port (current-error-port)))
+  "Update the '.gnu_debuglink' CRCs found in ELF files of NEW-OUTPUTS,
+provided NEW-OUTPUTS contains a \"debug\" output, such that those CRCs match
+those of the corresponding '.debug' files found in the \"debug\" output.
+
+This procedure is meant to be used as a \"grafting hook\" by (guix build
+graft)."
+  (match (assoc-ref new-outputs "debug")
+    (#f #t)                                       ;nothing to do
+    (debug-directory
+     (let ((files (find-elf-files (filter-map (match-lambda
+                                                (("debug" . _)
+                                                 #f)
+                                                ((name . directory)
+                                                 directory))
+                                              new-outputs))))
+       (for-each (lambda (file)
+                   (let ((debug (string-append debug-directory
+                                               "/lib/debug" file ".debug")))
+                     (when (file-exists? debug)
+                       (format log-port
+                               "updating '.gnu_debuglink' CRC in '~a'~%"
+                               file)
+                       (make-file-writable file)
+                       (set-debuglink-crc file debug))))
+                 files)))))
diff --git a/guix/build/graft.scm b/guix/build/graft.scm
index e567bff4f4..c119ee71d1 100644
--- a/guix/build/graft.scm
+++ b/guix/build/graft.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -19,6 +19,7 @@
 
 (define-module (guix build graft)
   #:use-module (guix build utils)
+  #:use-module (guix build debug-link)
   #:use-module (rnrs bytevectors)
   #:use-module (ice-9 vlist)
   #:use-module (ice-9 match)
@@ -27,7 +28,8 @@
   #:use-module (srfi srfi-1)   ; list library
   #:use-module (srfi srfi-26)  ; cut and cute
   #:export (replace-store-references
-            rewrite-directory))
+            rewrite-directory
+            graft))
 
 ;;; Commentary:
 ;;;
@@ -321,4 +323,29 @@ file name pairs."
                               #:directories? #t))
   (rename-matching-files output mapping))
 
+(define %graft-hooks
+  ;; Default list of hooks run after grafting.
+  (list graft-debug-links))
+
+(define* (graft old-outputs new-outputs mapping
+                #:key (log-port (current-output-port))
+                (hooks %graft-hooks))
+  "Apply the grafts described by MAPPING on OLD-OUTPUTS, leading to
+NEW-OUTPUTS.  MAPPING must be a list of file name pairs; OLD-OUTPUTS and
+NEW-OUTPUTS are lists of output name/file name pairs."
+  (for-each (lambda (input output)
+              (format log-port "grafting '~a' -> '~a'...~%" input output)
+              (force-output)
+              (rewrite-directory input output mapping))
+            (match old-outputs
+              (((names . files) ...)
+               files))
+            (match new-outputs
+              (((names . files) ...)
+               files)))
+  (for-each (lambda (hook)
+              (hook old-outputs new-outputs mapping
+                    #:log-port log-port))
+            hooks))
+
 ;;; graft.scm ends here
diff --git a/guix/grafts.scm b/guix/grafts.scm
index d6b0e93e8d..f303e925f1 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -117,16 +117,7 @@ are not recursively applied to dependencies of DRV."
                                        (cons (assoc-ref old-outputs name)
                                              file)))
                                     %outputs))))
-         (for-each (lambda (input output)
-                     (format #t "grafting '~a' -> '~a'...~%" input output)
-                     (force-output)
-                     (rewrite-directory input output mapping))
-                   (match old-outputs
-                     (((names . files) ...)
-                      files))
-                   (match %outputs
-                     (((names . files) ...)
-                      files))))))
+         (graft old-outputs %outputs mapping))))
 
   (define add-label
     (cut cons "x" <>))
@@ -139,7 +130,9 @@ are not recursively applied to dependencies of DRV."
                                      #:system system
                                      #:guile-for-build guile
                                      #:modules '((guix build graft)
-                                                 (guix build utils))
+                                                 (guix build utils)
+                                                 (guix build debug-link)
+                                                 (guix elf))
                                      #:inputs `(,@(map (lambda (out)
                                                          `("x" ,drv ,out))
                                                        outputs)
diff --git a/po/guix/de.po b/po/guix/de.po
index 5242d53780..7e29852c2a 100644
--- a/po/guix/de.po
+++ b/po/guix/de.po
@@ -1,14 +1,15 @@
 # German translation of guix.
-# Copyright (C) 2014 Free Software Foundation, Inc.
+# Copyright (C) 2018 the authors of Guix (msgids)
 # This file is distributed under the same license as the guix package.
-# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2015, 2016.
+# Florian Pelz <pelzflorian@pelzflorian.de>, 2018.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2015, 2016, 2018.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: guix 0.11.0\n"
+"Project-Id-Version: guix 0.15.0\n"
 "Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2016-07-29 10:16+0200\n"
-"PO-Revision-Date: 2016-09-15 21:49+0200\n"
+"POT-Creation-Date: 2018-06-22 14:08+0200\n"
+"PO-Revision-Date: 2018-08-24 20:57+0200\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -17,177 +18,376 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 2.1.1\n"
 
-#: gnu/packages.scm:79
+#: gnu.scm:82
 #, scheme-format
-msgid "~a: patch not found"
-msgstr "~a: Patch nicht gefunden"
+msgid "module ~a not found"
+msgstr "Modul »~a« nicht gefunden"
+
+#: gnu.scm:100
+msgid ""
+"You may use @command{guix package --show=foo | grep location} to search\n"
+"for the location of package @code{foo}.\n"
+"If you get the line @code{location: gnu/packages/bar.scm:174:2},\n"
+"add @code{bar} to the @code{use-package-modules} form."
+msgstr ""
+"Der Befehl @command{guix package --show=foo | grep location} zeigt Ihnen\n"
+"die Stelle, an der das Paket @code{foo} definiert ist.\n"
+"Wenn Sie eine Ausgabe wie @code{location: gnu/packages/bar.scm:174:2}\n"
+"sehen, fügen Sie @code{bar} in Ihre @code{use-package-modules}-Form ein."
 
-#: gnu/packages.scm:95
+#: gnu.scm:108
 #, scheme-format
-msgid "could not find bootstrap binary '~a' for system '~a'"
+msgid "Try adding @code{(use-package-modules ~a)}."
+msgstr "Vielleicht sollten Sie @code{(use-package-modules ~a)} einfügen."
+
+#: gnu.scm:123
+#, scheme-format
+msgid ""
+"You may use @command{guix system search ~a} to search for a service\n"
+"matching @code{~a}.\n"
+"If you get the line @code{location: gnu/services/foo.scm:188:2},\n"
+"add @code{foo} to the @code{use-service-modules} form."
 msgstr ""
+"Der Befehl @command{guix system search ~a} sucht nach einem zu\n"
+"@code{~a} passenden Dienst.\n"
+"Wenn Sie eine Ausgabe wie @code{location: gnu/services/foo.scm:188:2} sehen,\n"
+"fügen Sie @code{foo} in Ihre @code{use-service-modules}-Form ein."
 
-#: gnu/packages.scm:147
+#: gnu.scm:132
 #, scheme-format
-msgid "cannot access `~a': ~a~%"
-msgstr "Zugriff auf »~a« nicht möglich: ~a~%"
+msgid "Try adding @code{(use-service-modules ~a)}."
+msgstr "Vielleicht sollten Sie @code{(use-service-modules ~a)} einfügen."
 
-#: gnu/packages.scm:301
+#: gnu/packages.scm:92
+#, scheme-format
+msgid "~a: patch not found"
+msgstr "~a: Patch nicht gefunden"
+
+#: gnu/packages.scm:108
+#, scheme-format
+msgid "could not find bootstrap binary '~a' for system '~a'"
+msgstr "Die Bootstrap-Binärdatei »~a« für System »~a« konnte nicht gefunden werden"
+
+#: gnu/packages.scm:259
 #, scheme-format
 msgid "ambiguous package specification `~a'~%"
 msgstr "Nicht eindeutige Paketangabe »~a«~%"
 
-#: gnu/packages.scm:302
+#: gnu/packages.scm:260
 #, scheme-format
-msgid "choosing ~a from ~a~%"
-msgstr ""
+msgid "choosing ~a@~a from ~a~%"
+msgstr "Benutzt wird ~a@~a aus ~a~%"
 
-#: gnu/packages.scm:306
+#: gnu/packages.scm:265 guix/scripts/package.scm:238
 #, scheme-format
-msgid "deprecated NAME-VERSION syntax; use NAME@VERSION instead~%"
-msgstr ""
+msgid "package '~a' has been superseded by '~a'~%"
+msgstr "Paket »~a« wurde abgelöst durch »~a«~%"
 
-#: gnu/packages.scm:311
+#: gnu/packages.scm:272
 #, scheme-format
 msgid "~A: package not found for version ~a~%"
 msgstr "~A: Paket nicht gefunden für Version ~a~%"
 
-#: gnu/packages.scm:321
+#: gnu/packages.scm:273
 #, scheme-format
 msgid "~A: unknown package~%"
-msgstr "~A: unbekanntes Paket~%"
+msgstr "~A: Unbekanntes Paket~%"
 
-#: gnu/packages.scm:349
+#: gnu/packages.scm:301
 #, scheme-format
 msgid "package `~a' lacks output `~a'~%"
-msgstr ""
+msgstr "Paket »~a« fehlt die Ausgabe »~a«~%"
 
-#: gnu/services.scm:540
+#: gnu/services.scm:238
 #, scheme-format
-msgid "no target of type '~a' for service ~s"
+msgid "~a: no value specified for service of type '~a'"
+msgstr "~a: Kein Wert für Dienst von Typ »~a«"
+
+#: gnu/services.scm:336
+msgid ""
+"Build the operating system top-level directory, which in\n"
+"turn refers to everything the operating system needs: its kernel, initrd,\n"
+"system profile, boot script, and so on."
+msgstr ""
+"Das oberste Verzeichnis des Betriebssystems erstellen, welches um\n"
+"alles erweitert wird, was das Betriebssystem braucht: sein Kernel,\n"
+"Initrd, Systemprofil, Boot-Skript und so weiter."
+
+#: gnu/services.scm:366
+msgid ""
+"Produce the operating system's boot script, which is spawned\n"
+"by the initrd once the root file system is mounted."
+msgstr ""
+"Das Boot-Skript des Betriebssystems erzeugen, welches vom Initrd\n"
+"gestartet wird, sobald das Wurzel-Dateisystem eingehängt wurde."
+
+#: gnu/services.scm:422
+msgid ""
+"Delete files from @file{/tmp}, @file{/var/run}, and other\n"
+"temporary locations at boot time."
+msgstr ""
+"Dateien aus @file{/tmp}, @file{/var/run} und anderen temporären Orten\n"
+"zur Boot-Zeit löschen."
+
+#: gnu/services.scm:476
+msgid ""
+"Run @dfn{activation} code at boot time and upon\n"
+"@command{guix system reconfigure} completion."
+msgstr ""
+"Den Aktivierungs-Code beim Hochfahren und nach jedem\n"
+"@command{guix system reconfigure} ausführen."
+
+#: gnu/services.scm:527
+msgid ""
+"Add special files to the root file system---e.g.,\n"
+"@file{/usr/bin/env}."
+msgstr ""
+"Besondere Dateien zum Wurzel-Dateisystem hinzufügen,\n"
+"z.B. @file{/usr/bin/env}."
+
+#: gnu/services.scm:563
+msgid "Populate the @file{/etc} directory."
+msgstr "Dateien ins @file{/etc}-Verzeichnis einfügen."
+
+#: gnu/services.scm:580
+msgid ""
+"Populate @file{/run/setuid-programs} with the specified\n"
+"executables, making them setuid-root."
+msgstr ""
+"Die angegebenen ausführbaren Dateien ins Verzeichnis\n"
+"@file{/run/setuid-programs} einfügen und als setuid-root markieren."
+
+#: gnu/services.scm:600
+msgid ""
+"This is the @dfn{system profile}, available as\n"
+"@file{/run/current-system/profile}.  It contains packages that the sysadmin\n"
+"wants to be globally available to all the system users."
+msgstr ""
+"Dies ist das @dfn{Systemprofil}, welches als @file{/run/current-system/profile}\n"
+"verfügbar ist. Es enthält Pakete, die der Systemadministrator global\n"
+"für alle Systemnutzer verfügbar machen möchte."
+
+#: gnu/services.scm:620
+msgid ""
+"Make ``firmware'' files loadable by the operating system\n"
+"kernel.  Firmware may then be uploaded to some of the machine's devices, such\n"
+"as Wifi cards."
 msgstr ""
+"»Firmware«-Dateien platzieren, so dass der Betriebssystem-Kernel sie\n"
+"laden kann. Dann kann der Kernel die Firmware auf an die Maschine\n"
+"angeschlossene Geräte, z.B. WLAN-Karten, hochladen."
 
-#: gnu/services.scm:551 gnu/services.scm:612
+#: gnu/services.scm:651
+msgid ""
+"Register garbage-collector roots---i.e., store items that\n"
+"will not be reclaimed by the garbage collector."
+msgstr ""
+"Müllsammler-Wurzeln — d.h. Store-Objekte, die vom\n"
+"Müllsammler nicht gelöscht werden — registrieren."
+
+#: gnu/services.scm:676
+#, scheme-format
+msgid "no target of type '~a' for service '~a'"
+msgstr "Kein Ziel von Typ »~a« für den Dienst »~a«"
+
+#: gnu/services.scm:702 gnu/services.scm:795
 #, scheme-format
 msgid "more than one target service of type '~a'"
-msgstr ""
+msgstr "Mehr als ein Ziel-Dienst von Typ »~a«"
 
-#: gnu/services.scm:602
+#: gnu/services.scm:785
 #, scheme-format
 msgid "service of type '~a' not found"
 msgstr "Dienst des Typs »~a« wurde nicht gefunden"
 
-#: gnu/system.scm:500
+#: gnu/system.scm:320
+#, scheme-format
+msgid "unrecognized boot parameters at '~a'~%"
+msgstr "Nicht erkannte Boot-Parameter für »~a«~%"
+
+#: gnu/system.scm:731
 #, scheme-format
 msgid "using a string for file '~a' is deprecated; use 'plain-file' instead~%"
 msgstr ""
+"Für »~a« eine Zeichenkette zu benutzen ist\n"
+"obsolet, benutzen Sie »plain-file«~%"
 
-#: gnu/system.scm:516
+#: gnu/system.scm:747
 #, scheme-format
 msgid "using a monadic value for '~a' is deprecated; use 'plain-file' instead~%"
 msgstr ""
+"Für »~a« einen monadischen Wert zu benutzen ist\n"
+"obsolet, benutzen Sie »plain-file«~%"
 
-#: gnu/system.scm:650
-#, fuzzy, scheme-format
-#| msgid "~a: invalid number~%"
+#: gnu/system.scm:892
+#, scheme-format
 msgid "~a: invalid locale name"
-msgstr "~a: ungültige Zahl~%"
+msgstr "~a: Ungültiger Locale-Name~%"
 
-#: gnu/system.scm:770
+#: gnu/services/shepherd.scm:175
 #, scheme-format
-msgid "unrecognized boot parameters for '~a'~%"
-msgstr "Nicht erkannte Startparameter für »~a«~%"
+msgid "service '~a' provided more than once"
+msgstr "Der Dienst »~a« kommt mehr als einmal vor."
 
-#: gnu/services/shepherd.scm:162
+#: gnu/services/shepherd.scm:190
 #, scheme-format
-msgid "service '~a' provided more than once"
+msgid "service '~a' requires '~a', which is not provided by any service"
 msgstr ""
+"Der Dienst »~a« setzt »~a« voraus, was\n"
+"von keinem Dienst angeboten wird."
 
-#: gnu/services/shepherd.scm:177
+#: gnu/system/mapped-devices.scm:142
 #, scheme-format
-msgid "service '~a' requires '~a', which is not provided by any service"
+msgid "you may need these modules in the initrd for ~a:~{ ~a~}"
+msgstr "Sie könnten diese Module in der Initrd für ~a brauchen:~{ ~a~}"
+
+#: gnu/system/mapped-devices.scm:146
+#, scheme-format
+msgid ""
+"Try adding them to the\n"
+"@code{initrd-modules} field of your @code{operating-system} declaration, along\n"
+"these lines:\n"
+"\n"
+"@example\n"
+" (operating-system\n"
+"   ;; @dots{}\n"
+"   (initrd-modules (append (list~{ ~s~})\n"
+"                           %base-initrd-modules)))\n"
+"@end example\n"
 msgstr ""
+"Vielleicht möchten Sie sie zum @code{initrd-modules}-Feld Ihrer\n"
+"@code{operating-system}-Deklaration hinzufügen, etwa so:\n"
+"\n"
+"@example\n"
+" (operating-system\n"
+"   ;; @dots{}\n"
+"   (initrd-modules (append (list~{ ~s~})\n"
+"                           %base-initrd-modules)))\n"
+"@end example\n"
+
+#: gnu/system/mapped-devices.scm:222
+#, scheme-format
+msgid "no LUKS partition with UUID '~a'"
+msgstr "Keine LUKS-Partition mit UUID »~a«"
 
-#: gnu/system/shadow.scm:240
+#: gnu/system/shadow.scm:245
 #, scheme-format
 msgid "supplementary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "Zusätzliche Gruppe »~a« von Nutzer »~a« wurde nicht deklariert"
 
-#: gnu/system/shadow.scm:250
+#: gnu/system/shadow.scm:255
 #, scheme-format
 msgid "primary group '~a' of user '~a' is undeclared"
-msgstr ""
+msgstr "Primäre Gruppe »~a« von Nutzer »~a« wurde nicht deklariert"
 
-#: guix/scripts.scm:52
+#: guix/scripts.scm:56
 #, scheme-format
 msgid "invalid argument: ~a~%"
 msgstr "Ungültiges Argument: ~a~%"
 
-#: guix/scripts.scm:78 guix/scripts/download.scm:99 guix/scripts/gc.scm:164
-#: guix/scripts/import/cran.scm:78 guix/scripts/import/elpa.scm:77
-#: guix/scripts/pull.scm:219 guix/scripts/lint.scm:916
-#: guix/scripts/publish.scm:549 guix/scripts/graph.scm:383
+#: 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
 #, scheme-format
 msgid "~A: unrecognized option~%"
-msgstr "~A: nicht erkannte Option~%"
+msgstr "~A: Nicht erkannte Option~%"
 
-#: guix/scripts/build.scm:121
+#: guix/scripts.scm:179
 #, scheme-format
-msgid "failed to create GC root `~a': ~a~%"
+msgid "Your Guix installation is ~a day old.\n"
+msgid_plural "Your Guix installation is ~a days old.\n"
+msgstr[0] "Ihre Guix-Installation ist ~a Tag alt.\n"
+msgstr[1] "Ihre Guix-Installation ist ~a Tage alt.\n"
+
+#: guix/scripts.scm:184
+#, scheme-format
+msgid ""
+"Consider running 'guix pull' followed by\n"
+"'~a' to get up-to-date packages and security updates.\n"
 msgstr ""
+"Vielleicht wollen Sie »guix pull« ausführen vor »~a«, um\n"
+"aktuelle Pakete und Sicherheitsaktualisierungen zu bekommen.\n"
+
+#: guix/scripts/build.scm:81
+#, scheme-format
+msgid "cannot access build log at '~a':~%"
+msgstr "Auf Erstellungsprotokoll auf »~a« kann nicht zugegriffen werden:~%"
+
+#: guix/scripts/build.scm:135
+#, scheme-format
+msgid "failed to create GC root `~a': ~a~%"
+msgstr "Müllsammler-Wurzel »~a« konnte nicht erzeugt werden: ~a~%"
 
-#: guix/scripts/build.scm:198
-#, fuzzy, scheme-format
-#| msgid "ambiguous package specification `~a'~%"
+#: guix/scripts/build.scm:237
+#, scheme-format
 msgid "invalid replacement specification: ~s~%"
-msgstr "Nicht eindeutige Paketangabe »~a«~%"
+msgstr "Ungültige Ersatzspezifikation: ~s~%"
 
-#: guix/scripts/build.scm:246
+#: guix/scripts/build.scm:294
 msgid ""
 "\n"
 "      --with-source=SOURCE\n"
 "                         use SOURCE when building the corresponding package"
 msgstr ""
+"\n"
+"      --with-source=QUELLE\n"
+"                         beim Erstellen des entsprechenden Pakets QUELLE\n"
+"                           benutzen"
 
-#: guix/scripts/build.scm:249
+#: guix/scripts/build.scm:297
 msgid ""
 "\n"
 "      --with-input=PACKAGE=REPLACEMENT\n"
 "                         replace dependency PACKAGE by REPLACEMENT"
 msgstr ""
+"\n"
+"      --with-input=PAKET=ERSATZ\n"
+"                         Abhängigkeit PAKET durch ERSATZ ersetzen"
 
-#: guix/scripts/build.scm:274
+#: guix/scripts/build.scm:300
+msgid ""
+"\n"
+"      --with-graft=PACKAGE=REPLACEMENT\n"
+"                         graft REPLACEMENT on packages that refer to PACKAGE"
+msgstr ""
+"\n"
+"      --with-graft=PAKET=ERSATZ\n"
+"                         mit ERSATZ jedes PAKET referenzierende Paket veredeln"
+
+#: guix/scripts/build.scm:325
 #, scheme-format
 msgid "transformation '~a' had no effect on ~a~%"
-msgstr ""
+msgstr "Transformation »~a« wirkte sich nicht aus auf ~a~%"
 
-#: guix/scripts/build.scm:292
+#: guix/scripts/build.scm:343
 msgid ""
 "\n"
 "  -L, --load-path=DIR    prepend DIR to the package module search path"
 msgstr ""
+"\n"
+"  -L, --load-path=VERZEICHNIS\n"
+"                         VERZEICHNIS vorne an den Paketmodulsuchpfad anhängen"
 
-#: guix/scripts/build.scm:294
+#: guix/scripts/build.scm:345
 msgid ""
 "\n"
 "  -K, --keep-failed      keep build tree of failed builds"
 msgstr ""
+"\n"
+"  -K, --keep-failed      Verzeichnisse zum Erstellen nach fehlgeschlagener\n"
+"                           Erstellung behalten"
 
-#: guix/scripts/build.scm:296
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -n, --dry-run          do not build the derivations"
+#: guix/scripts/build.scm:347
 msgid ""
 "\n"
 "  -k, --keep-going       keep going when some of the derivations fail"
 msgstr ""
 "\n"
-"  -n, --dry-run          die Ableitungen nicht erstellen"
+"  -k, --keep-going       weitermachen, wenn manche Ableitungen fehlschlagen"
 
-#: guix/scripts/build.scm:298
+#: guix/scripts/build.scm:349
 msgid ""
 "\n"
 "  -n, --dry-run          do not build the derivations"
@@ -195,51 +395,73 @@ msgstr ""
 "\n"
 "  -n, --dry-run          die Ableitungen nicht erstellen"
 
-#: guix/scripts/build.scm:300
+#: guix/scripts/build.scm:351
 msgid ""
 "\n"
 "      --fallback         fall back to building when the substituter fails"
 msgstr ""
+"\n"
+"      --fallback         notfalls selbst erstellen, wenn der Substituierer\n"
+"                           fehlschlägt"
 
-#: guix/scripts/build.scm:302
+#: guix/scripts/build.scm:353
 msgid ""
 "\n"
 "      --no-substitutes   build instead of resorting to pre-built substitutes"
 msgstr ""
+"\n"
+"      --no-substitutes   selbst erstellen, statt vorgefertigte Substitute zu\n"
+"                           benutzen"
 
-#: guix/scripts/build.scm:304 guix/scripts/size.scm:217
+#: guix/scripts/build.scm:355 guix/scripts/size.scm:232
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         fetch substitute from URLS if they are authorized"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         Substitute von URLS laden, wenn sie autorisiert sind"
 
-#: guix/scripts/build.scm:307
+#: guix/scripts/build.scm:358
 msgid ""
 "\n"
 "      --no-grafts        do not graft packages"
 msgstr ""
+"\n"
+"      --no-grafts        Pakete nicht veredeln"
 
-#: guix/scripts/build.scm:309
+#: guix/scripts/build.scm:360
 msgid ""
 "\n"
 "      --no-build-hook    do not attempt to offload builds via the build hook"
 msgstr ""
+"\n"
+"      --no-build-hook    nicht versuchen, Erstellungen über den »build hook«\n"
+"                           auszulagern"
 
-#: guix/scripts/build.scm:311
+#: guix/scripts/build.scm:362
 msgid ""
 "\n"
 "      --max-silent-time=SECONDS\n"
 "                         mark the build as failed after SECONDS of silence"
 msgstr ""
+"\n"
+"      --max-silent-time=SEKUNDEN\n"
+"                         das Erstellen als Fehlschlag markieren nach\n"
+"                           SEKUNDEN-langer Stille"
 
-#: guix/scripts/build.scm:314
+#: guix/scripts/build.scm:365
 msgid ""
 "\n"
 "      --timeout=SECONDS  mark the build as failed after SECONDS of activity"
 msgstr ""
+"\n"
+"      --timeout=SEKUNDEN\n"
+"                         das Erstellen als Fehlschlag markieren nach\n"
+"                           SEKUNDEN-langer Aktivität"
 
-#: guix/scripts/build.scm:316
+#: guix/scripts/build.scm:367
 msgid ""
 "\n"
 "      --verbosity=LEVEL  use the given verbosity LEVEL"
@@ -247,13 +469,16 @@ msgstr ""
 "\n"
 "      --verbosity=STUFE  die angegebene Ausführlichkeitsstufe verwenden"
 
-#: guix/scripts/build.scm:318
+#: guix/scripts/build.scm:369
 msgid ""
 "\n"
 "      --rounds=N         build N times in a row to detect non-determinism"
 msgstr ""
+"\n"
+"      --rounds=N         N-mal nacheinander erstellen, um Nichtdeterminismus\n"
+"                           festzustellen"
 
-#: guix/scripts/build.scm:320
+#: guix/scripts/build.scm:371
 msgid ""
 "\n"
 "  -c, --cores=N          allow the use of up to N CPU cores for the build"
@@ -261,107 +486,147 @@ msgstr ""
 "\n"
 "  -c, --cores=N          bis zu N Prozessorkerne für die Erstellung nutzen"
 
-#: guix/scripts/build.scm:322
+#: guix/scripts/build.scm:373
 msgid ""
 "\n"
 "  -M, --max-jobs=N       allow at most N build jobs"
 msgstr ""
+"\n"
+"  -M, --max-jobs=N       höchstens N gleichzeitige Erstellungsarbeiten zulassen"
 
-#: guix/scripts/build.scm:428 guix/scripts/build.scm:435
+#: guix/scripts/build.scm:479 guix/scripts/build.scm:486
 #, scheme-format
 msgid "not a number: '~a' option argument: ~a~%"
-msgstr ""
+msgstr "Keine Zahl: Kommandozeilenargument von »~a«: ~a~%"
 
-#: guix/scripts/build.scm:455
+#: guix/scripts/build.scm:505
 msgid ""
 "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
 "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
 msgstr ""
+"Aufruf: guix build [OPTION] … PAKET-ODER-ABLEITUNG …\n"
+"Jedes angegebene PAKET-ODER-ABLEITUNG erstellen und deren Ausgabepfade liefern.\n"
 
-#: guix/scripts/build.scm:457
+#: guix/scripts/build.scm:507
 msgid ""
 "\n"
 "  -e, --expression=EXPR  build the package or derivation EXPR evaluates to"
 msgstr ""
+"\n"
+"  -e, --expression=AUSDRUCK\n"
+"                         das Paket oder die Ableitung erstellen, zu der AUSDRUCK\n"
+"                           ausgewertet wird"
 
-#: guix/scripts/build.scm:459
+#: guix/scripts/build.scm:509
 msgid ""
 "\n"
 "  -f, --file=FILE        build the package or derivation that the code within\n"
 "                         FILE evaluates to"
 msgstr ""
+"\n"
+"  -f, --file=DATEI       das Paket oder die Ableitung erstellen, zu der der\n"
+"                           Code in DATEI ausgewertet wird"
 
-#: guix/scripts/build.scm:462
+#: guix/scripts/build.scm:512
 msgid ""
 "\n"
 "  -S, --source           build the packages' source derivations"
 msgstr ""
+"\n"
+"  -S, --source           die Quellcode-Ableitungen der Pakete erstellen"
 
-#: guix/scripts/build.scm:464
+#: guix/scripts/build.scm:514
 msgid ""
 "\n"
 "      --sources[=TYPE]   build source derivations; TYPE may optionally be one\n"
 "                         of \"package\", \"all\" (default), or \"transitive\""
 msgstr ""
+"\n"
+"      --sources[=TYP]    die Quellcode-Ableitungen erstellen, wobei TYP optional\n"
+"                           entweder »package«, »all« (Voreinstellung) oder\n"
+"                           »transitive« ist"
 
-#: guix/scripts/build.scm:467
+#: guix/scripts/build.scm:517 guix/scripts/pack.scm:646
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    attempt to build for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=SYSTEM    versuchen, für die angegebene Art von SYSTEM zu\n"
+"                           erstellen — z.B. »i686-linux«"
 
-#: guix/scripts/build.scm:469
+#: guix/scripts/build.scm:519 guix/scripts/pack.scm:648
 msgid ""
 "\n"
 "      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
 msgstr ""
+"\n"
+"      --target=TRIPLET   cross-erstellen für TRIPLET — z.B. »armel-linux-gnu«"
 
-#: guix/scripts/build.scm:471
+#: guix/scripts/build.scm:521
 msgid ""
 "\n"
 "  -d, --derivations      return the derivation paths of the given packages"
 msgstr ""
+"\n"
+"  -d, --derivations      die Ableitungspfade der angegebenen Pakete liefern"
 
-#: guix/scripts/build.scm:473
+#: guix/scripts/build.scm:523
 msgid ""
 "\n"
 "      --check            rebuild items to check for non-determinism issues"
 msgstr ""
+"\n"
+"      --check            Objekte erneut erstellen, um auf Probleme wegen\n"
+"                           Nichtdeterminismus zu prüfen"
+
+#: guix/scripts/build.scm:525
+msgid ""
+"\n"
+"      --repair           repair the specified items"
+msgstr ""
+"\n"
+"      --repair           die angegebenen Objekte reparieren"
 
-#: guix/scripts/build.scm:475
+#: guix/scripts/build.scm:527
 msgid ""
 "\n"
 "  -r, --root=FILE        make FILE a symlink to the result, and register it\n"
 "                         as a garbage collector root"
 msgstr ""
+"\n"
+"  -r, --root=DATEI       DATEI zu einer symbolischen Verknüpfung auf das\n"
+"                           Ergebnis machen und als Müllsammler-Wurzel\n"
+"                           registrieren"
 
-#: guix/scripts/build.scm:478
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "  -n, --dry-run          do not build the derivations"
+#: guix/scripts/build.scm:530
 msgid ""
 "\n"
 "  -q, --quiet            do not show the build log"
 msgstr ""
 "\n"
-"  -n, --dry-run          die Ableitungen nicht erstellen"
+"  -q, --quiet            kein Protokoll der Erstellung anzeigen"
 
-#: guix/scripts/build.scm:480
+#: guix/scripts/build.scm:532
 msgid ""
 "\n"
 "      --log-file         return the log file names for the given derivations"
 msgstr ""
+"\n"
+"      --log-file         die Namen der Protokolldateien für die\n"
+"                           angegebenen Ableitungen liefern"
 
-#: guix/scripts/build.scm:487 guix/scripts/download.scm:56
-#: guix/scripts/package.scm:388 guix/scripts/gc.scm:74
-#: guix/scripts/hash.scm:56 guix/scripts/import.scm:91
-#: guix/scripts/import/cran.scm:46 guix/scripts/pull.scm:83
-#: guix/scripts/substitute.scm:827 guix/scripts/system.scm:695
-#: guix/scripts/lint.scm:865 guix/scripts/publish.scm:73
-#: guix/scripts/edit.scm:44 guix/scripts/size.scm:225
-#: guix/scripts/graph.scm:364 guix/scripts/challenge.scm:182
-#: guix/scripts/container.scm:33 guix/scripts/container/exec.scm:43
+#: 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/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
 msgid ""
 "\n"
 "  -h, --help             display this help and exit"
@@ -369,50 +634,70 @@ msgstr ""
 "\n"
 "  -h, --help             diese Hilfe anzeigen und beenden"
 
-#: guix/scripts/build.scm:489 guix/scripts/download.scm:58
-#: guix/scripts/package.scm:390 guix/scripts/gc.scm:76
-#: guix/scripts/hash.scm:58 guix/scripts/import.scm:93
-#: guix/scripts/import/cran.scm:48 guix/scripts/pull.scm:85
-#: guix/scripts/substitute.scm:829 guix/scripts/system.scm:697
-#: guix/scripts/lint.scm:869 guix/scripts/publish.scm:75
-#: guix/scripts/edit.scm:46 guix/scripts/size.scm:227
-#: guix/scripts/graph.scm:366 guix/scripts/challenge.scm:184
-#: guix/scripts/container.scm:35 guix/scripts/container/exec.scm:45
+#: 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
 msgid ""
 "\n"
 "  -V, --version          display version information and exit"
 msgstr ""
 "\n"
-"  -V, --version          Versionsinformation anzeigen und beenden"
+"  -V, --version          Versionsinformationen anzeigen und beenden"
 
-#: guix/scripts/build.scm:516
+#: guix/scripts/build.scm:568
 #, scheme-format
 msgid ""
 "invalid argument: '~a' option argument: ~a, ~\n"
 "must be one of 'package', 'all', or 'transitive'~%"
 msgstr ""
+"Ungültiges Argument der Kommandozeilenoption »~a«: ~a, ~\n"
+"muss entweder »package«, »all« oder »transitive« sein~%"
 
-#: guix/scripts/build.scm:563
+#: guix/scripts/build.scm:621
 #, scheme-format
 msgid "~s: not something we can build~%"
-msgstr ""
+msgstr "~s: Ist nichts, was Guix erstellen kann~%"
 
-#: guix/scripts/build.scm:643
+#: guix/scripts/build.scm:679
+#, scheme-format
+msgid "~a: warning: package '~a' has no source~%"
+msgstr "~a: Warnung: Paket »~a« hat keinen Quellort~%"
+
+#: guix/scripts/build.scm:713
 #, scheme-format
 msgid "no build log for '~a'~%"
 msgstr "Kein Erstellungsprotokoll für »~a«~%"
 
-#: guix/scripts/download.scm:47
+#: guix/discovery.scm:90
+#, scheme-format
+msgid "cannot access `~a': ~a~%"
+msgstr "Zugriff auf »~a« nicht möglich: ~a~%"
+
+#: guix/scripts/download.scm:69
 msgid ""
 "Usage: guix download [OPTION] URL\n"
-"Download the file at URL, add it to the store, and print its store path\n"
-"and the hash of its contents.\n"
+"Download the file at URL to the store or to the given file, and print its\n"
+"file name and the hash of its contents.\n"
 "\n"
 "Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n"
 "('hex' and 'hexadecimal' can be used as well).\n"
 msgstr ""
+"Aufruf: guix download [OPTION] URL\n"
+"Die Datei bei URL herunterladen, in den Store einfügen und den Pfad dorthin\n"
+"sowie die Prüfsumme ihres Inhalts ausgeben.\n"
+"\n"
+"Unterstützte Formate: »nix-base32« (Voreinstellung), »base32« und »base16«\n"
+"(»hex« und »hexadecimal« können auch benutzt werden).\n"
 
-#: guix/scripts/download.scm:53 guix/scripts/hash.scm:51
+#: guix/scripts/download.scm:75 guix/scripts/hash.scm:54
 msgid ""
 "\n"
 "  -f, --format=FMT       write the hash in the given format"
@@ -420,159 +705,204 @@ msgstr ""
 "\n"
 "  -f, --format=FORMAT    die Prüfsumme im angegebenen Format schreiben"
 
-#: guix/scripts/download.scm:76 guix/scripts/hash.scm:76
+#: guix/scripts/download.scm:77
+msgid ""
+"\n"
+"      --no-check-certificate\n"
+"                         do not validate the certificate of HTTPS servers "
+msgstr ""
+"\n"
+"      --no-check-certificate\n"
+"                         bei HTTPS-Servern das Zertifikat nicht überprüfen"
+
+#: guix/scripts/download.scm:80
+msgid ""
+"\n"
+"  -o, --output=FILE      download to FILE"
+msgstr ""
+"\n"
+"  -o, --output=DATEI     Heruntergeladenes als DATEI speichern"
+
+#: guix/scripts/download.scm:103 guix/scripts/hash.scm:82
 #, scheme-format
 msgid "unsupported hash format: ~a~%"
 msgstr "Nicht unterstütztes Prüfsummenformat: ~a~%"
 
-#: guix/scripts/download.scm:102 guix/scripts/package.scm:842
-#: guix/scripts/publish.scm:551
+#: guix/scripts/download.scm:138 guix/scripts/package.scm:884
+#: guix/scripts/publish.scm:883
 #, scheme-format
 msgid "~A: extraneous argument~%"
-msgstr ""
+msgstr "~A: Zusätzliches Argument~%"
 
-#: guix/scripts/download.scm:111
-#, fuzzy, scheme-format
-#| msgid "~a: download failed~%"
+#: guix/scripts/download.scm:146
+#, scheme-format
 msgid "no download URI was specified~%"
-msgstr "~a: Herunterladen fehlgeschlagen~%"
+msgstr "Keine Download-URI wurde angegeben~%"
 
-#: guix/scripts/download.scm:113
+#: guix/scripts/download.scm:151
 #, scheme-format
 msgid "~a: failed to parse URI~%"
 msgstr "~a: URI~% konnte nicht verarbeitet werden"
 
-#: guix/scripts/download.scm:126
+#: guix/scripts/download.scm:161
 #, scheme-format
 msgid "~a: download failed~%"
 msgstr "~a: Herunterladen fehlgeschlagen~%"
 
-#: guix/scripts/package.scm:104
+#: guix/scripts/package.scm:72
 #, scheme-format
 msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
 msgstr ""
+"Versuchen Sie, »info '(guix) Invoking guix package'« aufzurufen, um mehr\n"
+"Informationen zu erhalten.~%"
 
-#: guix/scripts/package.scm:126
+#: guix/scripts/package.scm:94
 #, scheme-format
 msgid "error: while creating directory `~a': ~a~%"
 msgstr "Fehler beim Anlegen des Verzeichnisses »~a«: ~a~%"
 
-#: guix/scripts/package.scm:130
+#: guix/scripts/package.scm:98
 #, scheme-format
 msgid "Please create the `~a' directory, with you as the owner.~%"
 msgstr "Bitte legen Sie das Verzeichnis »~a« mit Ihnen als Eigentümer an.~%"
 
-#: guix/scripts/package.scm:137
+#: guix/scripts/package.scm:105
 #, scheme-format
 msgid "error: directory `~a' is not owned by you~%"
 msgstr "Fehler: Das Verzeichnis »~a« gehört Ihnen nicht~%"
 
-#: guix/scripts/package.scm:140
+#: guix/scripts/package.scm:108
 #, scheme-format
 msgid "Please change the owner of `~a' to user ~s.~%"
 msgstr "Bitte ändern Sie den Eigentümer von »~a« in Benutzer ~s.~%"
 
-#: guix/scripts/package.scm:175
+#: guix/scripts/package.scm:143
 #, scheme-format
 msgid "not removing generation ~a, which is current~%"
-msgstr ""
+msgstr "Entfernung von Generation ~a verweigert, weil sie die aktuelle Generation ist~%"
 
-#: guix/scripts/package.scm:182
+#: guix/scripts/package.scm:150
 #, scheme-format
 msgid "no matching generation~%"
-msgstr "Keine passende Generation%"
+msgstr "Keine passende Generation~%"
 
-#: guix/scripts/package.scm:185 guix/scripts/package.scm:659
-#: guix/scripts/system.scm:502
+#: guix/scripts/package.scm:153 guix/scripts/package.scm:690
+#: guix/scripts/system.scm:593
 #, scheme-format
 msgid "invalid syntax: ~a~%"
 msgstr "Unzulässige Syntax: ~a~%"
 
-#: guix/scripts/package.scm:210
+#: guix/scripts/package.scm:182
 #, scheme-format
 msgid "nothing to be done~%"
 msgstr "Nichts zu tun~%"
 
-#: guix/scripts/package.scm:224
+#: guix/scripts/package.scm:196
 #, scheme-format
 msgid "~a package in profile~%"
 msgid_plural "~a packages in profile~%"
 msgstr[0] "~a Paket im Profil~%"
 msgstr[1] "~a Pakete im Profil~%"
 
-#: guix/scripts/package.scm:313
+#: guix/scripts/package.scm:280
+#, scheme-format
+msgid "package '~a' no longer exists~%"
+msgstr "Paket »~a« existiert nicht mehr~%"
+
+#: guix/scripts/package.scm:318
 #, scheme-format
 msgid "The following environment variable definitions may be needed:~%"
-msgstr "Die Definition folgender Umgebungsvariablen könnte nötig sein:~%"
+msgstr "Die Definition der folgenden Umgebungsvariablen könnte nötig sein:~%"
 
-#: guix/scripts/package.scm:329
+#: guix/scripts/package.scm:334
 msgid ""
 "Usage: guix package [OPTION]...\n"
 "Install, remove, or upgrade packages in a single transaction.\n"
 msgstr ""
-"Aufruf: guix package [OPTION]...\n"
+"Aufruf: guix package [OPTION] …\n"
 "Pakete in einer einzigen Transaktion installieren,\n"
 "entfernen oder aktualisieren.\n"
 
-#: guix/scripts/package.scm:331
+#: guix/scripts/package.scm:336
 msgid ""
 "\n"
 "  -i, --install PACKAGE ...\n"
 "                         install PACKAGEs"
 msgstr ""
 "\n"
-"  -i, --install=PAKET    PAKET oder PAKETE installieren"
+"  -i, --install=PAKET …  PAKET oder PAKETE installieren"
 
-#: guix/scripts/package.scm:334
+#: guix/scripts/package.scm:339
 msgid ""
 "\n"
 "  -e, --install-from-expression=EXP\n"
 "                         install the package EXP evaluates to"
 msgstr ""
+"\n"
+"  -e, --install-from-expression=AUSDRUCK\n"
+"                         das Paket installieren, zu dem AUSDRUCK ausgewertet\n"
+"                           wird"
 
-#: guix/scripts/package.scm:337
+#: guix/scripts/package.scm:342
 msgid ""
 "\n"
 "  -f, --install-from-file=FILE\n"
 "                         install the package that the code within FILE\n"
 "                         evaluates to"
 msgstr ""
+"\n"
+"  -f, --install-from-file=DATEI\n"
+"                         das Paket installieren, zu dem der Code in der DATEI\n"
+"                           ausgewertet wird"
 
-#: guix/scripts/package.scm:341
+#: guix/scripts/package.scm:346
 msgid ""
 "\n"
 "  -r, --remove PACKAGE ...\n"
 "                         remove PACKAGEs"
 msgstr ""
 "\n"
-"  -r, --remove=PAKET     PAKET oder PAKETE entfernen"
+"  -r, --remove=PAKET …   PAKET oder PAKETE entfernen"
 
-#: guix/scripts/package.scm:344
+#: guix/scripts/package.scm:349
 msgid ""
 "\n"
 "  -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -u, --upgrade[=REGEXP]\n"
+"                         alle installierten Pakete aktualisieren, die zum\n"
+"                           regulären Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:346
+#: guix/scripts/package.scm:351
 msgid ""
 "\n"
 "  -m, --manifest=FILE    create a new profile generation with the manifest\n"
 "                         from FILE"
 msgstr ""
+"\n"
+"  -m, --manifest=DATEI   eine neue Profilgeneration mit dem Manifest\n"
+"                           aus DATEI erzeugen"
 
-#: guix/scripts/package.scm:349
+#: guix/scripts/package.scm:354
 msgid ""
 "\n"
 "      --do-not-upgrade[=REGEXP] do not upgrade any packages matching REGEXP"
 msgstr ""
+"\n"
+"      --do-not-upgrade[=REGEXP]\n"
+"                         keine Pakete aktualisieren, die zum regulären\n"
+"                           Ausdruck REGEXP passen"
 
-#: guix/scripts/package.scm:351
+#: guix/scripts/package.scm:356
 msgid ""
 "\n"
 "      --roll-back        roll back to the previous generation"
 msgstr ""
+"\n"
+"      --roll-back        zurück zur vorherigen Generation wechseln"
 
-#: guix/scripts/package.scm:353
+#: guix/scripts/package.scm:358
 msgid ""
 "\n"
 "      --search-paths[=KIND]\n"
@@ -582,40 +912,64 @@ msgstr ""
 "      --search-paths[=ART]\n"
 "                         benötigte Definitionen von Umgebungsvariablen anzeigen"
 
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:361 guix/scripts/pull.scm:113
 msgid ""
 "\n"
 "  -l, --list-generations[=PATTERN]\n"
 "                         list generations matching PATTERN"
 msgstr ""
+"\n"
+"  -l, --list-generations[=MUSTER]\n"
+"                         zum MUSTER passende Generationen auflisten"
 
-#: guix/scripts/package.scm:359
+#: guix/scripts/package.scm:364
 msgid ""
 "\n"
 "  -d, --delete-generations[=PATTERN]\n"
 "                         delete generations matching PATTERN"
 msgstr ""
+"\n"
+"  -d, --delete-generations[=MUSTER]\n"
+"                         zum MUSTER passende Generationen löschen"
 
-#: guix/scripts/package.scm:362
+#: guix/scripts/package.scm:367
 msgid ""
 "\n"
 "  -S, --switch-generation=PATTERN\n"
 "                         switch to a generation matching PATTERN"
 msgstr ""
+"\n"
+"  -S, --switch-generation=MUSTER\n"
+"                         zu einer zum MUSTER passenden Generation wechseln"
 
-#: guix/scripts/package.scm:365
+#: guix/scripts/package.scm:370
 msgid ""
 "\n"
 "  -p, --profile=PROFILE  use PROFILE instead of the user's default profile"
 msgstr ""
+"\n"
+"  -p, --profile=PROFIL   PROFIL benutzen anstelle des Standardprofils\n"
+"                           des Nutzers"
+
+#: guix/scripts/package.scm:373
+msgid ""
+"\n"
+"      --allow-collisions do not treat collisions in the profile as an error"
+msgstr ""
+"\n"
+"      --allow-collisions\n"
+"                         Kollisionen im Profil nicht als Fehler auffassen"
 
-#: guix/scripts/package.scm:368
+#: guix/scripts/package.scm:375
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the profile"
 msgstr ""
+"\n"
+"      --bootstrap        das Bootstrap-Guile benutzen, um das Profil zu\n"
+"                           erstellen"
 
-#: guix/scripts/package.scm:370 guix/scripts/pull.scm:76
+#: guix/scripts/package.scm:377 guix/scripts/pull.scm:105
 msgid ""
 "\n"
 "      --verbose          produce verbose output"
@@ -623,27 +977,35 @@ msgstr ""
 "\n"
 "      --verbose          ausführliche Ausgaben anzeigen"
 
-#: guix/scripts/package.scm:373
+#: guix/scripts/package.scm:380
 msgid ""
 "\n"
 "  -s, --search=REGEXP    search in synopsis and description using REGEXP"
 msgstr ""
+"\n"
+"  -s, --search=REGEXP    in Zusammenfassung und Beschreibung mit REGEXP suchen"
 
-#: guix/scripts/package.scm:375
+#: guix/scripts/package.scm:382
 msgid ""
 "\n"
 "  -I, --list-installed[=REGEXP]\n"
 "                         list installed packages matching REGEXP"
 msgstr ""
+"\n"
+"  -I, --list-installed[=REGEXP]\n"
+"                         zu REGEXP passende installierte Pakete auflisten"
 
-#: guix/scripts/package.scm:378
+#: guix/scripts/package.scm:385
 msgid ""
 "\n"
 "  -A, --list-available[=REGEXP]\n"
 "                         list available packages matching REGEXP"
 msgstr ""
+"\n"
+"  -A, --list-available[=REGEXP]\n"
+"                         zu REGEXP passende verfügbare Pakete auflisten"
 
-#: guix/scripts/package.scm:381
+#: guix/scripts/package.scm:388
 msgid ""
 "\n"
 "      --show=PACKAGE     show details about PACKAGE"
@@ -651,25 +1013,37 @@ msgstr ""
 "\n"
 "      --show=PAKET       Details zu PAKET anzeigen"
 
-#: guix/scripts/package.scm:476
+#: guix/scripts/package.scm:440
 #, scheme-format
-msgid "~a: unsupported kind of search path~%"
+msgid "upgrade regexp '~a' looks like a command-line option~%"
 msgstr ""
+"--upgrade: Der reguläre Ausdruck »~a«\n"
+"sieht wie eine Kommandozeilenoption aus"
+
+#: guix/scripts/package.scm:443
+#, scheme-format
+msgid "is this intended?~%"
+msgstr "Ist das gewollt?~%"
 
-#: guix/scripts/package.scm:755
+#: guix/scripts/package.scm:488
+#, scheme-format
+msgid "~a: unsupported kind of search path~%"
+msgstr "~a: Nicht unterstützte Art von Suchpfad~%"
+
+#: guix/scripts/package.scm:789
 #, scheme-format
 msgid "cannot switch to generation '~a'~%"
 msgstr "Zu Generation »~a« kann nicht gewechselt werden~%"
 
-#: guix/scripts/package.scm:771
+#: guix/scripts/package.scm:806
 #, scheme-format
 msgid "would install new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "Neues Manifest aus »~a« mit ~d Einträgen würde installiert~%"
 
-#: guix/scripts/package.scm:773
+#: guix/scripts/package.scm:808
 #, scheme-format
 msgid "installing new manifest from '~a' with ~d entries~%"
-msgstr ""
+msgstr "Neues Manifest aus »~a« mit ~d Einträgen wird installiert~%"
 
 #: guix/scripts/gc.scm:42
 msgid ""
@@ -677,7 +1051,7 @@ msgid ""
 "Invoke the garbage collector.\n"
 msgstr ""
 "Aufruf: guix gc [OPTION] … PFADE …\n"
-"Ruft den Müllsammler auf.\n"
+"Den Müllsammler aufrufen.\n"
 
 #: guix/scripts/gc.scm:44
 msgid ""
@@ -685,12 +1059,19 @@ msgid ""
 "  -C, --collect-garbage[=MIN]\n"
 "                         collect at least MIN bytes of garbage"
 msgstr ""
+"\n"
+"  -C, --collect-garbage[=MIN]\n"
+"                         mindestens MIN Bytes an Müll sammeln"
 
 #: guix/scripts/gc.scm:47
 msgid ""
 "\n"
 "  -F, --free-space=FREE  attempt to reach FREE available space in the store"
 msgstr ""
+"\n"
+"  -F, --free-space=MENGE\n"
+"                         versuchen, im Store die angegebene MENGE an Speicher\n"
+"                           frei zu machen"
 
 #: guix/scripts/gc.scm:49
 msgid ""
@@ -698,88 +1079,122 @@ msgid ""
 "  -d, --delete           attempt to delete PATHS"
 msgstr ""
 "\n"
-"  -d, --delete           versuchen, PFADE zu löschen"
+"  -d, --delete           PFADE zu löschen versuchen"
 
 #: guix/scripts/gc.scm:51
 msgid ""
 "\n"
 "      --optimize         optimize the store by deduplicating identical files"
 msgstr ""
+"\n"
+"      --optimize         den Store durch Deduplizieren identischer\n"
+"                           Dateien optimieren"
 
 #: guix/scripts/gc.scm:53
 msgid ""
 "\n"
 "      --list-dead        list dead paths"
 msgstr ""
+"\n"
+"      --list-dead        tote Pfade auflisten"
 
 #: guix/scripts/gc.scm:55
 msgid ""
 "\n"
 "      --list-live        list live paths"
 msgstr ""
+"\n"
+"      --list-live        lebende Pfade auflisten"
 
 #: guix/scripts/gc.scm:58
 msgid ""
 "\n"
 "      --references       list the references of PATHS"
 msgstr ""
+"\n"
+"      --references       Referenzen der PFADE auflisten"
 
 #: guix/scripts/gc.scm:60
 msgid ""
 "\n"
 "  -R, --requisites       list the requisites of PATHS"
 msgstr ""
+"\n"
+"  -R, --requisites       Voraussetzungen der PFADE auflisten"
 
 #: guix/scripts/gc.scm:62
 msgid ""
 "\n"
 "      --referrers        list the referrers of PATHS"
 msgstr ""
+"\n"
+"      --referrers        auflisten, wo die PFADE referenziert werden"
+
+#: guix/scripts/gc.scm:64
+msgid ""
+"\n"
+"      --derivers         list the derivers of PATHS"
+msgstr ""
+"\n"
+"      --derivers         die Ableiter der PFADE auflisten"
 
-#: guix/scripts/gc.scm:65
+#: guix/scripts/gc.scm:67
 msgid ""
 "\n"
 "      --verify[=OPTS]    verify the integrity of the store; OPTS is a\n"
 "                         comma-separated combination of 'repair' and\n"
 "                         'contents'"
 msgstr ""
+"\n"
+"      --verify[=OPTIONEN]\n"
+"                         die Integrität des Stores verifizieren; OPTIONEN ist\n"
+"                           eine kommagetrennte Kombination aus\n"
+"                           »repair« (reparieren) und »contents« (Inhalt)"
 
-#: guix/scripts/gc.scm:69
+#: guix/scripts/gc.scm:71
 msgid ""
 "\n"
 "      --list-failures    list cached build failures"
 msgstr ""
+"\n"
+"      --list-failures    gespeicherte Fehlschläge beim Erstellen auflisten"
 
-#: guix/scripts/gc.scm:71
+#: guix/scripts/gc.scm:73
 msgid ""
 "\n"
 "      --clear-failures   remove PATHS from the set of cached failures"
 msgstr ""
+"\n"
+"      --clear-failures   PFADE aus der Menge gespeicherter Fehlschläge entfernen"
+
+#: guix/scripts/gc.scm:87
+#, scheme-format
+msgid "~a: invalid '--verify' option~%"
+msgstr "~a: Ungültige Argumente für »--verify«~%"
 
-#: guix/scripts/gc.scm:100
+#: guix/scripts/gc.scm:117
 #, scheme-format
 msgid "invalid amount of storage: ~a~%"
-msgstr "Ungültiger Speicher-Wert: ~a~%"
+msgstr "Ungültige Speichermenge: ~a~%"
 
-#: guix/scripts/gc.scm:191
+#: guix/scripts/gc.scm:202
 msgid "already ~h bytes available on ~a, nothing to do~%"
-msgstr ""
+msgstr "Es sind bereits ~h Bytes verfügbar auf ~a, nichts zu tun~%"
 
-#: guix/scripts/gc.scm:194
+#: guix/scripts/gc.scm:205
 msgid "freeing ~h bytes~%"
-msgstr ""
+msgstr "Gebe ~h Bytes frei~%"
 
-#: guix/scripts/gc.scm:206
-#, fuzzy, scheme-format
-#| msgid "invalid argument: ~a~%"
+#: guix/scripts/gc.scm:217
+#, scheme-format
 msgid "extraneous arguments: ~{~a ~}~%"
-msgstr "Ungültiges Argument: ~a~%"
+msgstr "Zusätzliche Argumente: ~{~a ~}~%"
 
-#: guix/scripts/gc.scm:226 guix/scripts/gc.scm:229
+#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240
 msgid "freed ~h bytes~%"
-msgstr ""
+msgstr "~h Bytes freigegeben"
 
-#: guix/scripts/hash.scm:46
+#: guix/scripts/hash.scm:47
 msgid ""
 "Usage: guix hash [OPTION] FILE\n"
 "Return the cryptographic hash of FILE.\n"
@@ -787,99 +1202,114 @@ msgid ""
 "Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n"
 "and 'hexadecimal' can be used as well).\n"
 msgstr ""
+"Aufruf: guix hash [OPTION] DATEI\n"
+"Die kryptographische Prüfsumme der DATEI liefern.\n"
+"\n"
+"Unterstützte Formate: »nix-base32« (Voreinstellung), »base32« und »base16«\n"
+"(»hex« und »hexadecimal« können auch benutzt werden).\n"
 
-#: guix/scripts/hash.scm:53
+#: guix/scripts/hash.scm:52
 msgid ""
 "\n"
-"  -r, --recursive        compute the hash on FILE recursively"
+"  -x, --exclude-vcs      exclude version control directories"
 msgstr ""
 "\n"
-"  -r, --recursive        errechnet die Prüfsumme der DATEI rekursiv"
+"  -x, --exclude-vcs      Verzeichnisse zur Versionsverwaltung ignorieren"
 
-#: guix/scripts/hash.scm:104
-#, scheme-format
-msgid "unrecognized option: ~a~%"
-msgstr "Nicht erkannte Option: ~a~%"
+#: guix/scripts/hash.scm:56
+msgid ""
+"\n"
+"  -r, --recursive        compute the hash on FILE recursively"
+msgstr ""
+"\n"
+"  -r, --recursive        die Prüfsumme der DATEI rekursiv errechnen"
 
-#: guix/scripts/hash.scm:135 guix/ui.scm:477
+#: guix/scripts/hash.scm:150 guix/ui.scm:365 guix/ui.scm:706 guix/ui.scm:759
 #, scheme-format
 msgid "~a~%"
 msgstr "~a~%"
 
-#: guix/scripts/hash.scm:138 guix/scripts/system.scm:825
+#: guix/scripts/hash.scm:153 guix/scripts/system.scm:1161
+#: guix/scripts/system.scm:1170 guix/scripts/system.scm:1177
 #, scheme-format
 msgid "wrong number of arguments~%"
 msgstr "Falsche Argumentanzahl~%"
 
-#: guix/scripts/import.scm:85
+#: guix/scripts/import.scm:86
 msgid ""
 "Usage: guix import IMPORTER ARGS ...\n"
 "Run IMPORTER with ARGS.\n"
 msgstr ""
-"Aufruf: guix import IMPORTER ARGUMENTE ...\n"
+"Aufruf: guix import IMPORTER ARGUMENTE …\n"
 "IMPORTER mit ARGUMENTEN ausführen.\n"
 
-#: guix/scripts/import.scm:88
+#: guix/scripts/import.scm:89
 msgid "IMPORTER must be one of the importers listed below:\n"
 msgstr "IMPORTER muss einer der unten aufgelisteten Importer sein:\n"
 
-#: guix/scripts/import.scm:102
+#: guix/scripts/import.scm:103
 #, scheme-format
 msgid "guix import: missing importer name~%"
 msgstr "guix import: Importer-Name fehlt~%"
 
-#: guix/scripts/import.scm:115
-#, fuzzy, scheme-format
-#| msgid "~a: download failed~%"
+#: guix/scripts/import.scm:123
+#, scheme-format
 msgid "'~a' import failed~%"
-msgstr "~a: Herunterladen fehlgeschlagen~%"
+msgstr "Import von »~a« fehlgeschlagen~%"
 
-#: guix/scripts/import.scm:116
-#, fuzzy, scheme-format
-#| msgid "~a: invalid number~%"
+#: guix/scripts/import.scm:124
+#, scheme-format
 msgid "~a: invalid importer~%"
-msgstr "~a: ungültige Zahl~%"
+msgstr "~a: Ungültiger Importer~%"
 
-#: guix/scripts/import/cran.scm:42
+#: guix/scripts/import/cran.scm:43
 msgid ""
 "Usage: guix import cran PACKAGE-NAME\n"
 "Import and convert the CRAN package for PACKAGE-NAME.\n"
 msgstr ""
+"Usage: guix import cran PAKET-NAME\n"
+"Das CRAN-Paket für PAKET-NAME importieren und umwandeln.\n"
 
-#: guix/scripts/import/cran.scm:44
+#: guix/scripts/import/cran.scm:45
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE  specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIV   das angegebene Archiv-Repository verwenden"
 
-#: guix/scripts/import/cran.scm:94
+#: guix/scripts/import/cran.scm:110
 #, scheme-format
 msgid "failed to download description for package '~a'~%"
 msgstr "Beschreibung für Paket »~a« konnte nicht geladen werden~%"
 
-#: guix/scripts/import/cran.scm:98 guix/scripts/import/elpa.scm:95
+#: guix/scripts/import/cran.scm:114 guix/scripts/import/elpa.scm:113
 #, scheme-format
 msgid "too few arguments~%"
 msgstr "Zu wenige Argumente~%"
 
-#: guix/scripts/import/cran.scm:100 guix/scripts/import/elpa.scm:97
+#: guix/scripts/import/cran.scm:116 guix/scripts/import/elpa.scm:115
 #, scheme-format
 msgid "too many arguments~%"
 msgstr "Zu viele Argumente~%"
 
-#: guix/scripts/import/elpa.scm:41
+#: guix/scripts/import/elpa.scm:44
 msgid ""
 "Usage: guix import elpa PACKAGE-NAME\n"
 "Import the latest package named PACKAGE-NAME from an ELPA repository.\n"
 msgstr ""
+"Aufruf: guix import elpa PAKET-NAME\n"
+"Das neueste Paket namens PAKET-NAME aus einem ELPA-Repository importieren.\n"
 
-#: guix/scripts/import/elpa.scm:43
+#: guix/scripts/import/elpa.scm:46
 msgid ""
 "\n"
 "  -a, --archive=ARCHIVE          specify the archive repository"
 msgstr ""
+"\n"
+"  -a, --archive=ARCHIV   das angegebene Archiv-Repository verwenden"
 
-#: guix/scripts/import/elpa.scm:45
+#: guix/scripts/import/elpa.scm:48
 msgid ""
 "\n"
 "  -h, --help                     display this help and exit"
@@ -887,258 +1317,319 @@ msgstr ""
 "\n"
 "  -h, --help                     diese Hilfe anzeigen und beenden"
 
-#: guix/scripts/import/elpa.scm:47
+#: guix/scripts/import/elpa.scm:50
+msgid ""
+"\n"
+"  -r, --recursive                generate package expressions for all Emacs packages that are not yet in Guix"
+msgstr ""
+"\n"
+"  -r, --recursive        Paketausdrücke für alle Emacs-Pakete generieren, die\n"
+"                           noch nicht in Guix vorhanden sind"
+
+#: guix/scripts/import/elpa.scm:52
 msgid ""
 "\n"
 "  -V, --version                  display version information and exit"
 msgstr ""
 "\n"
-"  -V, --version                  Versionsinformation anzeigen und beenden"
+"  -V, --version                  Versionsinformationen anzeigen und beenden"
 
-#: guix/scripts/import/elpa.scm:92
+#: guix/scripts/import/elpa.scm:110
 #, scheme-format
 msgid "failed to download package '~a'~%"
 msgstr "Paket »~a« konnte nicht heruntergeladen werden~%"
 
-#: guix/scripts/pull.scm:74
+#: 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 fehlt, wird aber von »guix pull« benötigt.\n"
+"Führen Sie zur Installation Folgendes aus:\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
 msgid ""
 "Usage: guix pull [OPTION]...\n"
 "Download and deploy the latest version of Guix.\n"
 msgstr ""
+"Aufruf: guix pull [OPTION] …\n"
+"Die neuste Version von Guix herunterladen und installieren.\n"
+
+#: guix/scripts/pull.scm:107
+msgid ""
+"\n"
+"      --url=URL          download from the Git repository at URL"
+msgstr ""
+"\n"
+"      --url=URL          das Tar-Archiv von Guix von URL herunterladen"
+
+#: guix/scripts/pull.scm:109
+msgid ""
+"\n"
+"      --commit=COMMIT    download the specified COMMIT"
+msgstr ""
+"\n"
+"      --commit=COMMIT    den angegebenen COMMIT herunterladen"
 
-#: guix/scripts/pull.scm:78
+#: guix/scripts/pull.scm:111
 msgid ""
 "\n"
-"      --url=URL          download the Guix tarball from URL"
+"      --branch=BRANCH    download the tip of the specified BRANCH"
 msgstr ""
+"\n"
+"      --branch=BRANCH    die Spitze des angegebenen Branchs herunterladen"
 
-#: guix/scripts/pull.scm:80
+#: guix/scripts/pull.scm:116
 msgid ""
 "\n"
 "      --bootstrap        use the bootstrap Guile to build the new Guix"
 msgstr ""
+"\n"
+"      --bootstrap        das Bootstrap-Guile benutzen, um das neue Guix zu\n"
+"                           erstellen"
 
-#: guix/scripts/pull.scm:134
-msgid "tarball did not produce a single source directory"
-msgstr "Entpacken des Tar-Archiv erzeugte kein einzelnes Quellverzeichnis"
+#: guix/scripts/pull.scm:263
+#, scheme-format
+msgid "cannot enforce use of the Let's Encrypt certificates~%"
+msgstr "Die Nutzung von Let’s-Encrypt-Zertifikaten kann nicht erzwungen werden~%"
 
-#: guix/scripts/pull.scm:152
+#: guix/scripts/pull.scm:265
 #, scheme-format
-msgid "unpacking '~a'...~%"
-msgstr "»~a« wird entpackt …~%"
+msgid "please upgrade Guile-Git~%"
+msgstr "Bitte aktualisieren Sie Guile-Git~%"
 
-#: guix/scripts/pull.scm:161
-msgid "failed to unpack source code"
-msgstr "Quellcode konnte nicht entpackt werden"
+#: guix/scripts/pull.scm:273
+#, scheme-format
+msgid "Git error ~a~%"
+msgstr "Git-Fehler ~a~%"
 
-#: guix/scripts/pull.scm:204
-msgid "Guix already up to date\n"
-msgstr "Guix ist bereits aktuell\n"
+#: guix/scripts/pull.scm:275
+#, scheme-format
+msgid "Git error: ~a~%"
+msgstr "Git-Fehler: ~a~%"
 
-#: guix/scripts/pull.scm:209
+#: guix/scripts/pull.scm:302
 #, scheme-format
-msgid "updated ~a successfully deployed under `~a'~%"
-msgstr ""
+msgid "    repository URL: ~a~%"
+msgstr "    Repository-URL: ~a~%"
 
-#: guix/scripts/pull.scm:212
+#: guix/scripts/pull.scm:304
 #, scheme-format
-msgid "failed to update Guix, check the build log~%"
-msgstr "Guix konnte nicht aktualisiert werden, schauen Sie in das Build-Protokoll~%"
+msgid "    branch: ~a~%"
+msgstr "    Branch: ~a~%"
 
-#: guix/scripts/pull.scm:221
+#: guix/scripts/pull.scm:305
 #, scheme-format
-msgid "~A: unexpected argument~%"
-msgstr "~A: unerwartetes Argument~%"
+msgid "    commit: ~a~%"
+msgstr "    Commit: ~a~%"
 
-#: guix/scripts/pull.scm:230
-msgid "failed to download up-to-date source, exiting\n"
-msgstr "Aktueller Quellcode konnte nicht heruntergeladen werden, Abbruch\n"
+#: guix/scripts/pull.scm:373
+#, scheme-format
+msgid "Updating from Git repository at '~a'...~%"
+msgstr "Vom Git-Repository auf »~a« wird aktualisiert …~%"
 
-#: guix/scripts/substitute.scm:113
+#: guix/scripts/pull.scm:383
+#, scheme-format
+msgid "Building from Git commit ~a...~%"
+msgstr "Vom Git-Commit ~a wird erstellt …~%"
+
+#: guix/scripts/substitute.scm:125
 #, scheme-format
 msgid "authentication and authorization of substitutes disabled!~%"
-msgstr ""
+msgstr "Authentifizierung und Autorisierung von Substituten deaktiviert!~%"
 
-#: guix/scripts/substitute.scm:188
+#: guix/scripts/substitute.scm:200
 #, scheme-format
 msgid "download from '~a' failed: ~a, ~s~%"
 msgstr "Herunterladen von »~a« ist fehlgeschlagen: ~a, ~s~%"
 
-#: guix/scripts/substitute.scm:201
+#: guix/scripts/substitute.scm:213
 #, scheme-format
 msgid "while fetching ~a: server is somewhat slow~%"
 msgstr "Beim Holen von ~a: Server ist etwas langsam~%"
 
-#: guix/scripts/substitute.scm:203
+#: guix/scripts/substitute.scm:215
 #, scheme-format
 msgid "try `--no-substitutes' if the problem persists~%"
 msgstr "Versuchen Sie »--no-substitutes«, falls das Problem weiter besteht~%"
 
-#: guix/scripts/substitute.scm:219
-#, fuzzy, scheme-format
-#| msgid "unsupported signature version: ~a~%"
+#: guix/scripts/substitute.scm:225
+#, scheme-format
 msgid "unsupported substitute URI scheme: ~a~%"
-msgstr "Signaturversion wird nicht unterstützt: ~a~%"
+msgstr "URI-Schema des Substituts wird nicht unterstützt: ~a~%"
 
-#: guix/scripts/substitute.scm:252
-#, fuzzy, scheme-format
-#| msgid "while fetching ~a: server is somewhat slow~%"
+#: guix/scripts/substitute.scm:260
+#, scheme-format
 msgid "while fetching '~a': ~a (~s)~%"
-msgstr "Beim Holen von ~a: Server ist etwas langsam~%"
+msgstr "Beim Holen von »~a«: ~a (~s)~%"
 
-#: guix/scripts/substitute.scm:257
+#: guix/scripts/substitute.scm:265
 #, scheme-format
 msgid "ignoring substitute server at '~s'~%"
-msgstr ""
+msgstr "Substitutserver bei »~s« wird ignoriert~%"
 
-#: guix/scripts/substitute.scm:306
+#: guix/scripts/substitute.scm:315
 #, scheme-format
 msgid "signature version must be a number: ~s~%"
 msgstr "Signaturversion muss eine Zahl sein: ~s~%"
 
-#: guix/scripts/substitute.scm:310
+#: guix/scripts/substitute.scm:319
 #, scheme-format
 msgid "unsupported signature version: ~a~%"
 msgstr "Signaturversion wird nicht unterstützt: ~a~%"
 
-#: guix/scripts/substitute.scm:318
+#: guix/scripts/substitute.scm:327
 #, scheme-format
 msgid "signature is not a valid s-expression: ~s~%"
-msgstr ""
+msgstr "Signatur ist kein gültiger s-Ausdruck: ~s~%"
 
-#: guix/scripts/substitute.scm:322
+#: guix/scripts/substitute.scm:331
 #, scheme-format
 msgid "invalid format of the signature field: ~a~%"
 msgstr "Unzulässiges Format des Signaturfeldes: ~a~%"
 
-#: guix/scripts/substitute.scm:357
+#: guix/scripts/substitute.scm:366
 #, scheme-format
 msgid "invalid signature for '~a'~%"
 msgstr "Ungültige Signatur für »~a«~%"
 
-#: guix/scripts/substitute.scm:359
+#: guix/scripts/substitute.scm:368
 #, scheme-format
 msgid "hash mismatch for '~a'~%"
 msgstr "Prüfsummenfehler für »~a«~%"
 
-#: guix/scripts/substitute.scm:361
+#: guix/scripts/substitute.scm:370
 #, scheme-format
 msgid "'~a' is signed with an unauthorized key~%"
-msgstr ""
+msgstr "»~a« wurde mit einem unautorisierten Schlüssel signiert~%"
 
-#: guix/scripts/substitute.scm:363
+#: guix/scripts/substitute.scm:372
 #, scheme-format
 msgid "signature on '~a' is corrupt~%"
-msgstr "Signature von »~a« ist beschädigt~%"
+msgstr "Signatur von »~a« ist beschädigt~%"
 
-#: guix/scripts/substitute.scm:401
+#: guix/scripts/substitute.scm:457
 #, scheme-format
-msgid "substitute at '~a' lacks a signature~%"
-msgstr ""
-
-#: guix/scripts/substitute.scm:409
-#, fuzzy, scheme-format
-#| msgid "found valid signature for '~a'~%"
-msgid "~%Found valid signature for ~a~%"
-msgstr "Gültige Signatur für »~a« gefunden~%"
-
-#: guix/scripts/substitute.scm:412
-#, fuzzy, scheme-format
-#| msgid "~a~%"
-msgid "From ~a~%"
-msgstr "~a~%"
-
-#: guix/scripts/substitute.scm:452
-#, fuzzy, scheme-format
-#| msgid "profile '~a' does not exist~%"
 msgid "'~a' does not name a store item~%"
-msgstr "Profil »~a« existiert nicht~%"
+msgstr "»~a« benennt kein Objekt im Store~%"
 
-#: guix/scripts/substitute.scm:596
+#: guix/scripts/substitute.scm:619
 #, scheme-format
-msgid "updating list of substitutes from '~a'... ~5,1f%"
-msgstr ""
+msgid "updating substitutes from '~a'... ~5,1f%"
+msgstr "Liste der Substitute von »~a« wird aktualisiert … ~5,1f%"
 
-#: guix/scripts/substitute.scm:646
+#: guix/scripts/substitute.scm:683
 #, scheme-format
 msgid "~s: unsupported server URI scheme~%"
-msgstr ""
+msgstr "~s: Nicht unterstütztes URI-Schema für den Server~%"
 
-#: guix/scripts/substitute.scm:656
+#: guix/scripts/substitute.scm:693
 #, scheme-format
 msgid "'~a' uses different store '~a'; ignoring it~%"
-msgstr ""
+msgstr "»~a« verwendet einen anderen Store »~a«; wird ignoriert~%"
 
-#: guix/scripts/substitute.scm:801
+#: guix/scripts/substitute.scm:853
 #, scheme-format
 msgid "host name lookup error: ~a~%"
 msgstr "Fehler beim Nachschlagen des Rechnernamens: ~a~%"
 
-#: guix/scripts/substitute.scm:806
-#, fuzzy, scheme-format
-#| msgid "error: while creating directory `~a': ~a~%"
+#: guix/scripts/substitute.scm:858
+#, scheme-format
 msgid "TLS error in procedure '~a': ~a~%"
-msgstr "Fehler beim Anlegen des Verzeichnisses »~a«: ~a~%"
+msgstr "TLS-Fehler in Prozedur »~a«: ~a~%"
 
-#: guix/scripts/substitute.scm:817
+#: guix/scripts/substitute.scm:869
 msgid ""
 "Usage: guix substitute [OPTION]...\n"
 "Internal tool to substitute a pre-built binary to a local build.\n"
 msgstr ""
+"Aufruf: guix substitute [OPTION] …\n"
+"Internes Werkzeug zum Substituieren einer vorab erstellten Binärdatei zu einer\n"
+"lokalen Erstellung.\n"
 
-#: guix/scripts/substitute.scm:819
+#: guix/scripts/substitute.scm:871
 msgid ""
 "\n"
 "      --query            report on the availability of substitutes for the\n"
 "                         store file names passed on the standard input"
 msgstr ""
+"\n"
+"      --query            über die Verfügbarkeit von Substituten für die auf der\n"
+"                           Standardeingabe übermittelten Store-Dateinamen\n"
+"                           berichten"
 
-#: guix/scripts/substitute.scm:822
+#: guix/scripts/substitute.scm:874
 msgid ""
 "\n"
 "      --substitute STORE-FILE DESTINATION\n"
 "                         download STORE-FILE and store it as a Nar in file\n"
 "                         DESTINATION"
 msgstr ""
+"\n"
+"      --substitute STORE-DATEI ZIEL\n"
+"                         STORE-DATEI herunterladen und als ein Nar in einer\n"
+"                           Datei namens ZIEL speichern"
 
-#. TRANSLATORS: The second part of this message looks like
-#. "(4.1MiB installed)"; it shows the size of the package once
-#. installed.
-#: guix/scripts/substitute.scm:895
+#: guix/scripts/substitute.scm:939
 #, scheme-format
-msgid "Downloading ~a~:[~*~; (~a installed)~]...~%"
-msgstr ""
+msgid "no valid substitute for '~a'~%"
+msgstr "Kein gültiges Substitut für »~a«~%"
+
+#: guix/scripts/substitute.scm:946
+#, scheme-format
+msgid "Downloading ~a...~%"
+msgstr "~a wird heruntergeladen …~%"
 
-#: guix/scripts/substitute.scm:951
+#: guix/scripts/substitute.scm:1002
 msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
 msgstr ""
+"Zugriffskontrollliste (ACL) für Archivimporte scheint nicht initialisiert zu\n"
+"sein, Substitute könnten nicht verfügbar sein\n"
+
+#: guix/scripts/substitute.scm:1056
+#, scheme-format
+msgid "~a: invalid URI~%"
+msgstr "~a: Ungültige URI~%"
 
-#: guix/scripts/substitute.scm:1047
+#: guix/scripts/substitute.scm:1116
 #, scheme-format
 msgid "~a: unrecognized options~%"
-msgstr "~a: nicht erkannte Optionen~%"
+msgstr "~a: Nicht erkannte Optionen~%"
 
-#: guix/scripts/authenticate.scm:58
+#: guix/scripts/authenticate.scm:59
 #, scheme-format
 msgid "cannot find public key for secret key '~a'~%"
-msgstr "Öffentlicher Schlüssel des geheimen Schlüssels »~a« konnte nicht gefunden werden~%"
+msgstr ""
+"Öffentlicher Schlüssel des geheimen Schlüssels »~a« konnte\n"
+"nicht gefunden werden~%"
 
-#: guix/scripts/authenticate.scm:78
+#: guix/scripts/authenticate.scm:79
 #, scheme-format
 msgid "error: invalid signature: ~a~%"
-msgstr "Fehler: ungültige Signatur: ~a~%"
+msgstr "Fehler: Ungültige Signatur: ~a~%"
 
-#: guix/scripts/authenticate.scm:80
+#: guix/scripts/authenticate.scm:81
 #, scheme-format
 msgid "error: unauthorized public key: ~a~%"
-msgstr "Fehler: nicht autorisierter öffentlicher Schlüssel: ~a~%"
+msgstr "Fehler: Nicht autorisierter öffentlicher Schlüssel: ~a~%"
 
-#: guix/scripts/authenticate.scm:82
+#: guix/scripts/authenticate.scm:83
 #, scheme-format
 msgid "error: corrupt signature data: ~a~%"
 msgstr "Fehler: Signaturdaten beschädigt: ~a~%"
 
-#: guix/scripts/authenticate.scm:120
+#: guix/scripts/authenticate.scm:121
 msgid ""
 "Usage: guix authenticate OPTION...\n"
 "Sign or verify the signature on the given file.  This tool is meant to\n"
@@ -1148,505 +1639,711 @@ msgstr ""
 "Angegebene Datei signieren oder die Signatur überprüfen. Dieses Werkzeug\n"
 "ist dafür bestimmt, intern von »guix-daemon« aufgerufen zu werden.\n"
 
-#: guix/scripts/authenticate.scm:126
+#: guix/scripts/authenticate.scm:127
 msgid "wrong arguments"
 msgstr "Falsche Argumente"
 
-#: guix/scripts/system.scm:111
+#: guix/scripts/system.scm:143
 #, scheme-format
 msgid "failed to register '~a' under '~a'~%"
 msgstr "»~a« konnte nicht unter »~a« registriert werden~%"
 
-#: guix/scripts/system.scm:144
+#: guix/scripts/system.scm:154
+#, scheme-format
+msgid "copying to '~a'..."
+msgstr "Nach »~a« kopieren …"
+
+#: guix/scripts/system.scm:189
 #, scheme-format
-msgid "failed to install GRUB on device '~a'~%"
-msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%"
+msgid "failed to install bootloader ~a~%"
+msgstr "Bootloader »~a« konnte nicht installiert werden~%~%"
 
-#: guix/scripts/system.scm:162
+#: guix/scripts/system.scm:209
 #, scheme-format
 msgid "initializing the current root file system~%"
 msgstr "Aktuelles Wurzeldateisystem wird initialisiert~%"
 
-#: guix/scripts/system.scm:176
+#: guix/scripts/system.scm:223
 #, scheme-format
 msgid "not running as 'root', so the ownership of '~a' may be incorrect!~%"
 msgstr ""
+"Keine Administratorrechte, daher können die Eigentümer von »~a« falsch\n"
+"gespeichert worden sein!~%"
 
-#: guix/scripts/system.scm:234
+#: guix/scripts/system.scm:268
 #, scheme-format
 msgid "while talking to shepherd: ~a~%"
-msgstr ""
+msgstr "Bei der Kommunikation mit Shepherd: ~a~%"
 
-#: guix/scripts/system.scm:248
-#, fuzzy, scheme-format
-#| msgid "service of type '~a' not found"
+#: guix/scripts/system.scm:275
+#, scheme-format
 msgid "service '~a' could not be found~%"
-msgstr "Dienst des Typs »~a« wurde nicht gefunden"
+msgstr "Dienst »~a« konnte nicht gefunden werden~%"
 
-#: guix/scripts/system.scm:251
-#, fuzzy, scheme-format
-#| msgid "profile '~a' does not exist~%"
+#: guix/scripts/system.scm:278
+#, scheme-format
 msgid "service '~a' does not have an action '~a'~%"
-msgstr "Profil »~a« existiert nicht~%"
+msgstr "Dienst »~a« hat keine Aktion »~a«~%"
 
-#: guix/scripts/system.scm:255
-#, fuzzy, scheme-format
-#| msgid "corrupt input while restoring '~a' from ~s~%"
+#: guix/scripts/system.scm:282
+#, scheme-format
 msgid "exception caught while executing '~a' on service '~a':~%"
-msgstr "Beschädigte Eingabe, während »~a« aus »~s« wiederhergestellt wurde~%"
+msgstr "Ausnahme aufgetreten bei der Ausführung von »~a« auf Dienst »~a«:~%"
 
-#: guix/scripts/system.scm:263
-#, fuzzy, scheme-format
-#| msgid "no matching generation~%"
+#: guix/scripts/system.scm:290
+#, scheme-format
 msgid "something went wrong: ~s~%"
-msgstr "Keine passende Generation%"
+msgstr "Etwas ist schiefgelaufen: ~s~%"
 
-#: guix/scripts/system.scm:266
+#: guix/scripts/system.scm:293
 #, scheme-format
 msgid "shepherd error~%"
-msgstr ""
+msgstr "Shepherd-Fehler~%"
 
-#: guix/scripts/system.scm:302
-#, fuzzy, scheme-format
-#| msgid "failed to install GRUB on device '~a'~%"
+#: guix/scripts/system.scm:310
+#, scheme-format
 msgid "failed to obtain list of shepherd services~%"
-msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%"
+msgstr "Liste der Shepherd-Dienste konnte nicht abgerufen werden.~%"
 
-#: guix/scripts/system.scm:322
-#, fuzzy, scheme-format
-#| msgid "unpacking '~a'...~%"
+#: guix/scripts/system.scm:330
+#, scheme-format
 msgid "unloading service '~a'...~%"
-msgstr "»~a« wird entpackt …~%"
+msgstr "Dienst »~a« entladen …~%"
 
-#: guix/scripts/system.scm:330
+#: guix/scripts/system.scm:338
 #, scheme-format
 msgid "loading new services:~{ ~a~}...~%"
-msgstr ""
+msgstr "Neue Dienste laden:~{ ~a~} …~%"
 
-#: guix/scripts/system.scm:354
+#: guix/scripts/system.scm:364
 #, scheme-format
 msgid "activating system...~%"
 msgstr "System wird aktiviert …~%"
 
-#: guix/scripts/system.scm:445
+#: guix/scripts/system.scm:442
+#, scheme-format
+msgid "cannot switch to system generation '~a'~%"
+msgstr "Zu Generation »~a« kann nicht gewechselt werden~%"
+
+#: guix/scripts/system.scm:513
 msgid "the DAG of services"
-msgstr ""
+msgstr "gerichteter azyklischer Graph der Dienste"
 
-#: guix/scripts/system.scm:458
+#: guix/scripts/system.scm:526
 msgid "the dependency graph of shepherd services"
-msgstr ""
+msgstr "Abhängigkeitsgraph der Shepherd-Dienste"
 
-#: guix/scripts/system.scm:479
+#: guix/scripts/system.scm:550
 #, scheme-format
 msgid "  file name: ~a~%"
 msgstr "  Dateiname: ~a~%"
 
-#: guix/scripts/system.scm:480
+#: guix/scripts/system.scm:551
 #, scheme-format
 msgid "  canonical file name: ~a~%"
-msgstr ""
+msgstr "  kanonischer Dateiname: ~a~%"
 
 #. TRANSLATORS: Please preserve the two-space indentation.
-#: guix/scripts/system.scm:482
+#: guix/scripts/system.scm:553
 #, scheme-format
 msgid "  label: ~a~%"
-msgstr "  Label: ~a~%"
+msgstr "  Bezeichnung: ~a~%"
+
+#: guix/scripts/system.scm:554
+#, scheme-format
+msgid "  bootloader: ~a~%"
+msgstr "  Bootloader: ~a~%"
 
-#: guix/scripts/system.scm:483
+#. TRANSLATORS: The '~[', '~;', and '~]' sequences in this string must
+#. be preserved.  They denote conditionals, such that the result will
+#. look like:
+#. root device: UUID: 12345-678
+#. or:
+#. root device: label: "my-root"
+#. or just:
+#. root device: /dev/sda3
+#: guix/scripts/system.scm:564
 #, scheme-format
-msgid "  root device: ~a~%"
-msgstr "  Root-Gerät: ~a~%"
+msgid "  root device: ~[UUID: ~a~;label: ~s~;~a~]~%"
+msgstr "  Root-Gerät: ~[UUID: ~a~;label: ~s~;~a~]~%"
 
-#: guix/scripts/system.scm:484
+#: guix/scripts/system.scm:575
 #, scheme-format
 msgid "  kernel: ~a~%"
 msgstr "  Kernel: ~a~%"
 
-#: guix/scripts/system.scm:541
+#: guix/scripts/system.scm:646
 #, scheme-format
-msgid "~a not found: 'guix pull' was never run~%"
+msgid "~a: error: device '~a' not found: ~a~%"
+msgstr "~a: Fehler: Gerät »~a« nicht gefunden: ~a~%"
+
+#: guix/scripts/system.scm:650
+#, scheme-format
+msgid ""
+"If '~a' is a file system\n"
+"label, write @code{(file-system-label ~s)} in your @code{device} field."
 msgstr ""
+"Falls »~a« ein Dateisystem bezeichnet, schreiben Sie\n"
+"@code{(file-system-label ~s)} in Ihr @code{device}-Feld."
 
-#: guix/scripts/system.scm:542
+#: guix/scripts/system.scm:658
+#, scheme-format
+msgid "~a: error: file system with label '~a' not found~%"
+msgstr "~a: Fehler: Kein Dateisystem mit Bezeichnung »~a« gefunden~%"
+
+#: guix/scripts/system.scm:663
+#, scheme-format
+msgid "~a: error: file system with UUID '~a' not found~%"
+msgstr "~a: Fehler: Kein Dateisystem mit UUID »~a« gefunden~%"
+
+#: guix/scripts/system.scm:764
+#, scheme-format
+msgid "~a not found: 'guix pull' was never run~%"
+msgstr "~a nicht gefunden: »guix pull« wurde nie aufgerufen~%"
+
+#: guix/scripts/system.scm:765
 #, scheme-format
 msgid "Consider running 'guix pull' before 'reconfigure'.~%"
-msgstr ""
+msgstr "Vielleicht möchten Sie »guix pull« ausführen vor »reconfigure«.~%"
 
-#: guix/scripts/system.scm:543
+#: guix/scripts/system.scm:766
 #, scheme-format
 msgid "Failing to do that may downgrade your system!~%"
-msgstr ""
+msgstr "Andernfalls könnte Ihr System auf einen älteren Stand heruntergestuft werden!~%"
 
-#: guix/scripts/system.scm:613
+#: guix/scripts/system.scm:883
 #, scheme-format
 msgid "initializing operating system under '~a'...~%"
 msgstr "Betriebssystem unter »~a« wird initialisiert …~%"
 
-#: guix/scripts/system.scm:652
+#: guix/scripts/system.scm:928
 msgid ""
-"Usage: guix system [OPTION] ACTION [FILE]\n"
+"Usage: guix system [OPTION ...] ACTION [ARG ...] [FILE]\n"
 "Build the operating system declared in FILE according to ACTION.\n"
+"Some ACTIONS support additional ARGS.\n"
 msgstr ""
-"Aufruf: guix system [OPTION] AKTION [DATEI]\n"
+"Aufruf: guix system [OPTION …] AKTION [ARGUMENT …] [DATEI]\n"
 "Das in DATEI deklarierte Betriebssystem entsprechend der AKTION erstellen.\n"
+"Manche AKTIONEN unterstützen weitere ARGUMENTE.\n"
 
-#: guix/scripts/system.scm:655 guix/scripts/container.scm:28
+#: guix/scripts/system.scm:932 guix/scripts/container.scm:28
 msgid "The valid values for ACTION are:\n"
 msgstr "Die gültigen Werte für AKTION sind:\n"
 
-#: guix/scripts/system.scm:657
+#: guix/scripts/system.scm:934
+msgid "   search           search for existing service types\n"
+msgstr "   search             suche nach bestehenden Diensttypen\n"
+
+#: guix/scripts/system.scm:936
 msgid "   reconfigure      switch to a new operating system configuration\n"
-msgstr "   reconfigure      zur neuen Betriebssystemkonfiguration wechseln\n"
+msgstr "   reconfigure        zur neuen Betriebssystemkonfiguration wechseln\n"
+
+#: guix/scripts/system.scm:938
+msgid "   roll-back        switch to the previous operating system configuration\n"
+msgstr "   roll-back          zur vorherigen Betriebssystemkonfiguration wechseln\n"
 
-#: guix/scripts/system.scm:659
+#: guix/scripts/system.scm:940
+msgid "   switch-generation switch to an existing operating system configuration\n"
+msgstr "   switch-generation  zu einer bestehenden Betriebssystemkonfiguration wechseln\n"
+
+#: guix/scripts/system.scm:942
 msgid "   list-generations list the system generations\n"
-msgstr ""
+msgstr "   list-generations   die Systemgenerationen auflisten\n"
 
-#: guix/scripts/system.scm:661
+#: guix/scripts/system.scm:944
 msgid "   build            build the operating system without installing anything\n"
-msgstr "   build            das Betriebssystem erstellen, ohne etwas zu installieren\n"
+msgstr "   build              das Betriebssystem erstellen, ohne etwas zu installieren\n"
 
-#: guix/scripts/system.scm:663
-#, fuzzy
-#| msgid "   vm               build a virtual machine image that shares the host's store\n"
+#: guix/scripts/system.scm:946
 msgid "   container        build a container that shares the host's store\n"
 msgstr ""
-"   vm               ein Image für eine virtuelle Maschine erstellen, das den\n"
-"                    Speicher des Rechners nutzt\n"
+"   container          einen Container erstellen, der den Store mit dem\n"
+"                        Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:665
+#: guix/scripts/system.scm:948
 msgid "   vm               build a virtual machine image that shares the host's store\n"
 msgstr ""
-"   vm               ein Image für eine virtuelle Maschine erstellen, das den\n"
-"                    Speicher des Rechners nutzt\n"
+"   vm                 ein Image für eine virtuelle Maschine erstellen, das den\n"
+"                        Store mit dem Wirtssystem teilt\n"
 
-#: guix/scripts/system.scm:667
+#: guix/scripts/system.scm:950
 msgid "   vm-image         build a freestanding virtual machine image\n"
-msgstr "   vm-image         ein unabhängiges Image für eine virtuelle Maschine erstellen\n"
+msgstr ""
+"   vm-image           ein unabhängiges Image für eine virtuelle Maschine\n"
+"                        erstellen\n"
 
-#: guix/scripts/system.scm:669
+#: guix/scripts/system.scm:952
 msgid "   disk-image       build a disk image, suitable for a USB stick\n"
-msgstr "   disk-image       ein Disk-Image für einen USB-Stick erstellen\n"
+msgstr "   disk-image         ein Disk-Image z.B. für einen USB-Stick erstellen\n"
+
+#: guix/scripts/system.scm:954
+msgid "   docker-image     build a Docker image\n"
+msgstr "   docker-image       ein Docker-Image z.B. für einen USB-Stick erstellen\n"
 
-#: guix/scripts/system.scm:671
+#: guix/scripts/system.scm:956
 msgid "   init             initialize a root file system to run GNU\n"
-msgstr "   init             ein Wurzeldateisystem initialisieren, um GNU auszuführen.\n"
+msgstr "   init               ein Wurzeldateisystem initialisieren, um GNU auszuführen.\n"
 
-#: guix/scripts/system.scm:673
+#: guix/scripts/system.scm:958
 msgid "   extension-graph  emit the service extension graph in Dot format\n"
-msgstr ""
+msgstr "   extension-graph    den Erweiterungsgraphen im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:675
+#: guix/scripts/system.scm:960
 msgid "   shepherd-graph   emit the graph of shepherd services in Dot format\n"
-msgstr ""
+msgstr "   shepherd-graph     den Graphen der Shepherd-Dienste im Dot-Format ausgeben\n"
 
-#: guix/scripts/system.scm:679
+#: guix/scripts/system.scm:964
 msgid ""
 "\n"
 "  -d, --derivation       return the derivation of the given system"
 msgstr ""
+"\n"
+"  -d, --derivation       die Ableitung des gegebenen Systems liefern"
+
+#: guix/scripts/system.scm:966
+msgid ""
+"\n"
+"  -e, --expression=EXPR  consider the operating-system EXPR evaluates to\n"
+"                         instead of reading FILE, when applicable"
+msgstr ""
+"\n"
+"  -e, --expression=AUSDRUCK\n"
+"                         das operating-system betrachten, zu dem AUSDRUCK\n"
+"                           ausgewertet wird, statt etwa eine DATEI auszulesen"
 
-#: guix/scripts/system.scm:681
+#: guix/scripts/system.scm:969
 msgid ""
 "\n"
 "      --on-error=STRATEGY\n"
 "                         apply STRATEGY when an error occurs while reading FILE"
 msgstr ""
+"\n"
+"      --on-error=STRATEGIE\n"
+"                         STRATEGIE anwenden, wenn beim Lesen der DATEI ein\n"
+"                           Fehler auftritt"
+
+#: guix/scripts/system.scm:972
+msgid ""
+"\n"
+"      --file-system-type=TYPE\n"
+"                         for 'disk-image', produce a root file system of TYPE\n"
+"                         (one of 'ext4', 'iso9660')"
+msgstr ""
+"\n"
+"      --file-system-type=TYP\n"
+"                         bei »disk-image« ein Wurzeldateisystem des angegebenen\n"
+"                           TYPS (»ext4« oder »iso9660«) erzeugen"
 
-#: guix/scripts/system.scm:684
+#: guix/scripts/system.scm:976
 msgid ""
 "\n"
 "      --image-size=SIZE  for 'vm-image', produce an image of SIZE"
 msgstr ""
 "\n"
-"      --image-size=GRÖSSE für »vm-image«, ein Image der GRÖSSE erstellen"
+"      --image-size=GRÖSSE\n"
+"                         bei »vm-image« ein Image der GRÖSSE erstellen"
 
-#: guix/scripts/system.scm:686
+#: guix/scripts/system.scm:978
 msgid ""
 "\n"
-"      --no-grub          for 'init', do not install GRUB"
+"      --no-bootloader    for 'init', do not install a bootloader"
 msgstr ""
 "\n"
-"      --no-grub          für »init«, GRUB nicht installieren"
+"      --no-bootloader    bei »init« keinen Bootloader installieren"
 
-#: guix/scripts/system.scm:688
+#: guix/scripts/system.scm:980
 msgid ""
 "\n"
 "      --share=SPEC       for 'vm', share host file system according to SPEC"
 msgstr ""
+"\n"
+"      --share=SPEZIFIKATION\n"
+"                         bei »vm« das Wirtsdateisystem entsprechend der\n"
+"                           SPEZIFIKATION teilen"
 
-#: guix/scripts/system.scm:690
+#: guix/scripts/system.scm:982
+msgid ""
+"\n"
+"  -r, --root=FILE        for 'vm', 'vm-image', 'disk-image', 'container',\n"
+"                         and 'build', make FILE a symlink to the result, and\n"
+"                         register it as a garbage collector root"
+msgstr ""
+"\n"
+"  -r, --root=DATEI       bei »vm«, »vm-image«, »disk-image«, »container« und\n"
+"                           »build« die DATEI zu einer symbolischen Verknüpfung\n"
+"                           auf das Ergebnis machen und als Müllsammler-Wurzel\n"
+"                           registrieren"
+
+#: guix/scripts/system.scm:986
 msgid ""
 "\n"
 "      --expose=SPEC      for 'vm', expose host file system according to SPEC"
 msgstr ""
+"\n"
+"      --expose=SPEZIFIKATION\n"
+"                         bei »vm« das Wirtsdateisystem entsprechend der\n"
+"                           SPEZIFIKATION zugänglich machen"
 
-#: guix/scripts/system.scm:692
+#: guix/scripts/system.scm:988
 msgid ""
 "\n"
 "      --full-boot        for 'vm', make a full boot sequence"
 msgstr ""
 "\n"
-"      --full-boot        für »vm«, vollständige Boot-Sequenz"
+"      --full-boot        bei »vm« einen vollständigen Bootvorgang simulieren"
+
+#: guix/scripts/system.scm:990
+msgid ""
+"\n"
+"      --skip-checks      skip file system and initrd module safety checks"
+msgstr ""
+"\n"
+"      --skip-checks      Dateisystem- und Initrd-Modul-Fehlerprüfung\n"
+"                           überspringen"
+
+#: guix/scripts/system.scm:1089
+#, scheme-format
+msgid "both file and expression cannot be specified~%"
+msgstr "Es können nicht sowohl Datei als auch Ausdruck angegeben werden~%"
 
-#: guix/scripts/system.scm:777
+#: guix/scripts/system.scm:1096
 #, scheme-format
-msgid "no configuration file specified~%"
-msgstr "Keine Konfigurationsdatei angegeben~%"
+msgid "no configuration specified~%"
+msgstr "Keine Konfiguration angegeben~%"
 
-#: guix/scripts/system.scm:840
+#: guix/scripts/system.scm:1196
 #, scheme-format
 msgid "~a: unknown action~%"
-msgstr "~a: unbekannte Aktion~%"
+msgstr "~a: Unbekannte Aktion~%"
 
-#: guix/scripts/system.scm:855
+#: guix/scripts/system.scm:1212
 #, scheme-format
 msgid "wrong number of arguments for action '~a'~%"
 msgstr "Falsche Anzahl an Argumenten für Aktion »~a«~%"
 
-#: guix/scripts/system.scm:860
+#: guix/scripts/system.scm:1217
 #, scheme-format
 msgid "guix system: missing command name~%"
 msgstr "guix system: Befehlsname fehlt~%"
 
-#: guix/scripts/system.scm:862
+#: guix/scripts/system.scm:1219
 #, scheme-format
 msgid "Try 'guix system --help' for more information.~%"
 msgstr "Rufen Sie »guix system --help« auf, um weitere Informationen zu erhalten.~%"
 
-#: guix/scripts/lint.scm:130
+#: guix/scripts/system/search.scm:88 guix/ui.scm:1162 guix/ui.scm:1176
+msgid "unknown"
+msgstr "unbekannt"
+
+#: guix/scripts/lint.scm:139
 #, scheme-format
 msgid "Available checkers:~%"
 msgstr "Verfügbare Prüfer:~%"
 
-#: guix/scripts/lint.scm:150
+#: guix/scripts/lint.scm:163
 msgid "description should not be empty"
-msgstr ""
+msgstr "Die Beschreibung sollte nicht leer sein"
 
-#: guix/scripts/lint.scm:160
+#: guix/scripts/lint.scm:173
 msgid "Texinfo markup in description is invalid"
-msgstr ""
+msgstr "Das Texinfo-Markup in der Beschreibung ist ungültig"
+
+#: guix/scripts/lint.scm:183
+#, scheme-format
+msgid ""
+"description should not contain ~\n"
+"trademark sign '~a' at ~d"
+msgstr "Die Beschreibung sollte kein »Trademark«-Zeichen »~a« bei ~d enthalten"
 
-#: guix/scripts/lint.scm:168
+#. 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 "Benutzen Sie @code oder ähnliche Verzierungen statt Anführungszeichen"
+
+#: guix/scripts/lint.scm:203
 msgid "description should start with an upper-case letter or digit"
-msgstr ""
+msgstr "Die Beschreibung sollte mit einem Großbuchstaben oder einer Ziffer beginnen."
 
-#: guix/scripts/lint.scm:184
+#: guix/scripts/lint.scm:219
 #, scheme-format
 msgid ""
 "sentences in description should be followed ~\n"
 "by two spaces; possible infraction~p at ~{~a~^, ~}"
 msgstr ""
+"Auf Sätze in der Beschreibung sollten zwei Leerzeichen folgen;\n"
+"mögliche Verletzung~p bei ~{~a~^, ~}"
 
-#: guix/scripts/lint.scm:200
-#, fuzzy, scheme-format
-#| msgid "Validate package descriptions"
+#: guix/scripts/lint.scm:237
+#, scheme-format
 msgid "invalid description: ~s"
-msgstr "Paketbeschreibungen überprüfen"
+msgstr "Ungültige Beschreibung: ~s"
 
-#: guix/scripts/lint.scm:220
+#: guix/scripts/lint.scm:282
 #, scheme-format
 msgid "'~a' should probably be a native input"
-msgstr ""
+msgstr "»~a« sollte wahrscheinlich als native Eingabe deklariert werden"
 
-#: guix/scripts/lint.scm:238
+#: guix/scripts/lint.scm:298
+#, scheme-format
+msgid "'~a' should probably not be an input at all"
+msgstr "»~a« sollte wahrscheinlich gar keine Eingabe sein"
+
+#: guix/scripts/lint.scm:315
 msgid "synopsis should not be empty"
-msgstr ""
+msgstr "Die Zusammenfassung sollte nicht leer sein"
 
-#: guix/scripts/lint.scm:246
+#: guix/scripts/lint.scm:323
 msgid "no period allowed at the end of the synopsis"
 msgstr "Am Ende der Zusammenfassung darf kein Punkt gesetzt werden"
 
-#: guix/scripts/lint.scm:258
+#: guix/scripts/lint.scm:335
 msgid "no article allowed at the beginning of the synopsis"
 msgstr "Am Beginn der Zusammenfassung darf kein Artikel stehen"
 
-#: guix/scripts/lint.scm:265
+#: guix/scripts/lint.scm:342
 msgid "synopsis should be less than 80 characters long"
-msgstr "Zusammenfassung sollte nicht länger als 80 Zeichen sein"
+msgstr "Die Zusammenfassung sollte nicht länger als 80 Zeichen sein"
 
-#: guix/scripts/lint.scm:271
+#: guix/scripts/lint.scm:348
 msgid "synopsis should start with an upper-case letter or digit"
-msgstr "Zusammenfassung sollte mit einem Großbuchstaben oder einer Zahl beginnen"
+msgstr "Die Zusammenfassung sollte mit einem Großbuchstaben oder einer Zahl beginnen"
 
-#: guix/scripts/lint.scm:278
+#: guix/scripts/lint.scm:355
 msgid "synopsis should not start with the package name"
-msgstr "Zusammenfassung sollte nicht mit dem Paketnamen beginnen"
+msgstr "Die Zusammenfassung sollte nicht mit dem Paketnamen beginnen"
 
-#: guix/scripts/lint.scm:292
+#: guix/scripts/lint.scm:365
+msgid "Texinfo markup in synopsis is invalid"
+msgstr "Das Texinfo-Markup in der Zusammenfassung ist ungültig"
+
+#: guix/scripts/lint.scm:384
 #, scheme-format
 msgid "invalid synopsis: ~s"
 msgstr "Unzulässige Zusammenfassung: ~s"
 
-#: guix/scripts/lint.scm:383
+#: guix/scripts/lint.scm:503
 #, scheme-format
 msgid "URI ~a returned suspiciously small file (~a bytes)"
-msgstr ""
+msgstr "URI ~a hat eine verdächtig kleine Datei geliefert (~a Bytes)"
+
+#: guix/scripts/lint.scm:513
+#, scheme-format
+msgid "permanent redirect from ~a to ~a"
+msgstr "Permanente Weiterleitung von ~a auf ~a"
+
+#: guix/scripts/lint.scm:520
+#, scheme-format
+msgid "invalid permanent redirect from ~a"
+msgstr "Ungültige permanente Weiterleitung von ~a"
 
-#: guix/scripts/lint.scm:392 guix/scripts/lint.scm:404
+#: guix/scripts/lint.scm:527 guix/scripts/lint.scm:539
 #, scheme-format
 msgid "URI ~a not reachable: ~a (~s)"
-msgstr ""
+msgstr "URI ~a nicht erreichbar: ~a (~s)"
 
-#: guix/scripts/lint.scm:411
+#: guix/scripts/lint.scm:546
 #, scheme-format
 msgid "URI ~a domain not found: ~a"
-msgstr "URI-Domain ~a nicht gefunden: ~a"
+msgstr "Domain der URI ~a nicht gefunden: ~a"
 
-#: guix/scripts/lint.scm:419
+#: guix/scripts/lint.scm:554
 #, scheme-format
 msgid "URI ~a unreachable: ~a"
 msgstr "URI ~a ist nicht erreichbar: ~a"
 
-#: guix/scripts/lint.scm:445
+#: guix/scripts/lint.scm:563
+#, scheme-format
+msgid "TLS certificate error: ~a"
+msgstr "TLS-Zertifikatsfehler: ~a"
+
+#: guix/scripts/lint.scm:584
 msgid "invalid value for home page"
 msgstr "Ungültiger Wert für Homepage"
 
-#: guix/scripts/lint.scm:448
+#: guix/scripts/lint.scm:587
 #, scheme-format
 msgid "invalid home page URL: ~s"
 msgstr "Ungültige URL für Homepage: ~s"
 
-#: guix/scripts/lint.scm:468
+#: guix/scripts/lint.scm:613
 msgid "file names of patches should start with the package name"
-msgstr "Dateinamen oder Patches sollten mit dem Paketnamen beginnen"
+msgstr "Dateinamen von Patches sollten mit dem Paketnamen beginnen"
+
+#: guix/scripts/lint.scm:629
+#, scheme-format
+msgid "~a: file name is too long"
+msgstr "~a: Der Dateiname ist zu lang"
 
-#: guix/scripts/lint.scm:507
+#: guix/scripts/lint.scm:670
 #, scheme-format
 msgid "~a: ~a: proposed synopsis: ~s~%"
-msgstr "~a: ~a: vorgeschlagene Zusammenfassung: ~s~%"
+msgstr "~a: ~a: Vorgeschlagene Zusammenfassung: ~s~%"
 
-#: guix/scripts/lint.scm:520
+#: guix/scripts/lint.scm:683
 #, scheme-format
 msgid "~a: ~a: proposed description:~%     \"~a\"~%"
-msgstr "~a: ~a: vorgeschlagene Beschreibung:~%     \"~a\"~%"
+msgstr "~a: ~a: Vorgeschlagene Beschreibung:~%     \"~a\"~%"
 
-#: guix/scripts/lint.scm:557
+#: guix/scripts/lint.scm:725
 msgid "all the source URIs are unreachable:"
 msgstr "Alle Quell-URIs sind nicht erreichbar:"
 
-#: guix/scripts/lint.scm:580
+#: guix/scripts/lint.scm:747
 msgid "the source file name should contain the package name"
 msgstr "Der Name der Quelldatei sollte den Paketnamen enthalten"
 
-#: guix/scripts/lint.scm:589 guix/scripts/lint.scm:593
+#: guix/scripts/lint.scm:763
+#, scheme-format
+msgid "URL should be 'mirror://~a/~a'"
+msgstr "URL sollte »mirror://~a/~a« lauten"
+
+#: guix/scripts/lint.scm:781 guix/scripts/lint.scm:785
 #, scheme-format
 msgid "failed to create derivation: ~a"
 msgstr "Ableitung konnte nicht erstellt werden: ~a"
 
-#: guix/scripts/lint.scm:607
+#: guix/scripts/lint.scm:799
 #, scheme-format
 msgid "failed to create derivation: ~s~%"
 msgstr "Ableitung konnte nicht erstellt werden: ~s~%"
 
-#: guix/scripts/lint.scm:617
+#: guix/scripts/lint.scm:809
 msgid "invalid license field"
 msgstr "Ungültiges Lizenz-Feld"
 
-#: guix/scripts/lint.scm:634
-#, fuzzy, scheme-format
-#| msgid "failed to create derivation: ~s~%"
-msgid "failed to retrieve CVE vulnerabilities from ~s: ~a (~s)~%"
-msgstr "Ableitung konnte nicht erstellt werden: ~s~%"
+#: guix/scripts/lint.scm:816
+#, scheme-format
+msgid "~a: HTTP GET error for ~a: ~a (~s)~%"
+msgstr "~a: HTTP-GET-Fehler für ~a: ~a (~s)~%"
 
-#: guix/scripts/lint.scm:639 guix/scripts/lint.scm:647
+#: guix/scripts/lint.scm:826
 #, scheme-format
-msgid "assuming no CVE vulnerabilities~%"
-msgstr ""
+msgid "~a: host lookup failure: ~a~%"
+msgstr "~a: Nachschlagen des Rechners fehlgeschlagen: ~a~%"
 
-#: guix/scripts/lint.scm:645
-#, fuzzy, scheme-format
-#| msgid "failed to load '~a': ~a~%"
-msgid "failed to lookup NIST host: ~a~%"
-msgstr "»~a« konnte nicht geladen werden: ~a~%"
+#: guix/scripts/lint.scm:831
+#, scheme-format
+msgid "~a: TLS certificate error: ~a"
+msgstr "~a: TLS-Zertifikatsfehler: ~a"
 
-#: guix/scripts/lint.scm:683
+#: guix/scripts/lint.scm:846
+msgid "while retrieving CVE vulnerabilities"
+msgstr "Beim Laden der CVE-Sicherheitslücken"
+
+#: guix/scripts/lint.scm:883
 #, scheme-format
 msgid "probably vulnerable to ~a"
-msgstr ""
+msgstr "Wahrscheinlich angreifbar durch ~a"
 
-#: guix/scripts/lint.scm:698
+#: guix/scripts/lint.scm:890
+#, scheme-format
+msgid "while retrieving upstream info for '~a'"
+msgstr "Beim Laden der Informationen vom Ursprung für »~a«"
+
+#: guix/scripts/lint.scm:898
+#, scheme-format
+msgid "can be upgraded to ~a"
+msgstr "Kann aktualisiert werden auf »~a«"
+
+#: guix/scripts/lint.scm:913
 #, scheme-format
 msgid "tabulation on line ~a, column ~a"
 msgstr "Tabulator in Zeile ~a, Spalte ~a"
 
-#: guix/scripts/lint.scm:707
+#: guix/scripts/lint.scm:922
 #, scheme-format
 msgid "trailing white space on line ~a"
 msgstr "Leerzeichen am Ende der Zeile ~a"
 
-#: guix/scripts/lint.scm:717
+#: guix/scripts/lint.scm:932
 #, scheme-format
 msgid "line ~a is way too long (~a characters)"
 msgstr "Zeile ~a ist viel zu lang (~a Zeichen)"
 
-#: guix/scripts/lint.scm:728
+#: guix/scripts/lint.scm:943
 #, scheme-format
 msgid "line ~a: parentheses feel lonely, move to the previous or next line"
-msgstr ""
+msgstr "Zeile ~a hat einsame Klammern, setzen Sie sie auf die vorige oder nächste Zeile"
 
-#: guix/scripts/lint.scm:783
+#: guix/scripts/lint.scm:1013
 msgid "Validate package descriptions"
 msgstr "Paketbeschreibungen überprüfen"
 
-#: guix/scripts/lint.scm:787
+#: guix/scripts/lint.scm:1017
 msgid "Validate synopsis & description of GNU packages"
-msgstr "GNU-Paketzusammenfassung und -beschreibungen überprüfen"
+msgstr "GNU-Paketzusammenfassung und -beschreibung überprüfen"
 
-#: guix/scripts/lint.scm:791
+#: guix/scripts/lint.scm:1021
 msgid "Identify inputs that should be native inputs"
-msgstr "Eingaben prüfen, die native Eingaben sein sollten"
+msgstr "Eingaben suchen, die native Eingaben sein sollten"
+
+#: guix/scripts/lint.scm:1025
+msgid "Identify inputs that shouldn't be inputs at all"
+msgstr ""
+"Eingaben suchen, die gar keine Eingaben\n"
+"    sein sollten"
 
-#: guix/scripts/lint.scm:795
+#: guix/scripts/lint.scm:1029
 msgid "Validate file names and availability of patches"
 msgstr "Dateinamen und Verfügbarkeit der Patches überprüfen"
 
-#: guix/scripts/lint.scm:799
+#: guix/scripts/lint.scm:1033
 msgid "Validate home-page URLs"
 msgstr "Homepage-URLs überprüfen"
 
 #. TRANSLATORS: <license> is the name of a data type and must not be
 #. translated.
-#: guix/scripts/lint.scm:805
+#: guix/scripts/lint.scm:1039
 msgid "Make sure the 'license' field is a <license> or a list thereof"
 msgstr ""
+"Sicherstellen, dass das »license«-Feld eine <license> oder\n"
+"    eine Liste davon ist"
 
-#: guix/scripts/lint.scm:810
+#: guix/scripts/lint.scm:1044
 msgid "Validate source URLs"
 msgstr "Quell-URLs überprüfen"
 
-#: guix/scripts/lint.scm:814
+#: guix/scripts/lint.scm:1048
+msgid "Suggest 'mirror://' URLs"
+msgstr "»mirror://«-URLs vorschlagen"
+
+#: guix/scripts/lint.scm:1052
 msgid "Validate file names of sources"
-msgstr "Dateinamen der Quellen überprüfen"
+msgstr "Dateinamen der Quellorte überprüfen"
 
-#: guix/scripts/lint.scm:818
+#: guix/scripts/lint.scm:1056
 msgid "Report failure to compile a package to a derivation"
-msgstr ""
+msgstr "Fehler dabei melden, ein Paket zu einer Ableitung zu kompilieren"
 
-#: guix/scripts/lint.scm:822
+#: guix/scripts/lint.scm:1060
 msgid "Validate package synopses"
 msgstr "Paketzusammenfassungen überprüfen"
 
-#: guix/scripts/lint.scm:826
+#: guix/scripts/lint.scm:1064
 msgid "Check the Common Vulnerabilities and Exposures (CVE) database"
-msgstr ""
+msgstr "Die Datenbank der Common Vulnerabilities and Exposures (CVE) überprüfen"
 
-#: guix/scripts/lint.scm:831
+#: guix/scripts/lint.scm:1069
+msgid "Check the package for new upstream releases"
+msgstr "Den Ursprung des Pakets auf neue Veröffentlichungen hin prüfen"
+
+#: guix/scripts/lint.scm:1073
 msgid "Look for formatting issues in the source"
-msgstr "Nach Formatierungsfehlern in der Quelle schauen"
+msgstr "Nach Formatierungsfehlern im Quellort schauen"
 
-#: guix/scripts/lint.scm:859
+#: guix/scripts/lint.scm:1101
 msgid ""
 "Usage: guix lint [OPTION]... [PACKAGE]...\n"
 "Run a set of checkers on the specified package; if none is specified,\n"
 "run the checkers on all packages.\n"
 msgstr ""
-"Aufruf: guix lint [OPTION]... [PAKET]...\n"
+"Aufruf: guix lint [OPTION] … [PAKET] …\n"
 "Eine Reihe von Überprüfungen auf das angegebene Paket anwenden.\n"
-"Falls keine angegeben sind, werden alle verfügbaren Überprüfungen\n"
-"mit allen Paketen ausgeführt.\n"
+"Falls keine Prüfer angegeben werden, alle verfügbaren Prüfer\n"
+"auf alle Paketen anwenden.\n"
 
-#: guix/scripts/lint.scm:862
+#: guix/scripts/lint.scm:1104
 msgid ""
 "\n"
 "  -c, --checkers=CHECKER1,CHECKER2...\n"
@@ -1654,31 +2351,31 @@ msgid ""
 msgstr ""
 "\n"
 "  -c, --checkers=PRÜFER1,PRÜFER2 …\n"
-"                         nur die angegebenen Prüfer aufrufen"
+"                         nur die angegebenen Prüfer anwenden"
 
-#: guix/scripts/lint.scm:867
+#: guix/scripts/lint.scm:1109
 msgid ""
 "\n"
 "  -l, --list-checkers    display the list of available lint checkers"
 msgstr ""
 "\n"
-"  -l, --list-checkers    Liste der verfügbaren Überprüfungen anzeigen"
+"  -l, --list-checkers    Liste der verfügbaren Prüfer anzeigen"
 
-#: guix/scripts/lint.scm:887
+#: guix/scripts/lint.scm:1129
 #, scheme-format
 msgid "~a: invalid checker~%"
-msgstr "~a: unzulässiger Prüfer~%"
+msgstr "~a: Unzulässiger Prüfer~%"
 
-#: guix/scripts/publish.scm:57
+#: guix/scripts/publish.scm:68
 #, scheme-format
 msgid ""
 "Usage: guix publish [OPTION]...\n"
 "Publish ~a over HTTP.\n"
 msgstr ""
-"Aufruf: guix publish [OPTION]...\n"
+"Aufruf: guix publish [OPTION] …\n"
 "~a über HTTP bereitstellen.\n"
 
-#: guix/scripts/publish.scm:59
+#: guix/scripts/publish.scm:70
 msgid ""
 "\n"
 "  -p, --port=PORT        listen on PORT"
@@ -1686,69 +2383,128 @@ msgstr ""
 "\n"
 "  -p, --port=PORT        an PORT lauschen"
 
-#: guix/scripts/publish.scm:61
+#: guix/scripts/publish.scm:72
 msgid ""
 "\n"
 "      --listen=HOST      listen on the network interface for HOST"
 msgstr ""
+"\n"
+"      --listen=HOST      auf den Netzwerkschnittstellen für HOST lauschen"
 
-#: guix/scripts/publish.scm:63
+#: guix/scripts/publish.scm:74
 msgid ""
 "\n"
 "  -u, --user=USER        change privileges to USER as soon as possible"
 msgstr ""
+"\n"
+"  -u, --user=NUTZER      Berechtigungen von NUTZER so früh wie möglich\n"
+"                           übernehmen"
 
-#: guix/scripts/publish.scm:65
+#: guix/scripts/publish.scm:76
 msgid ""
 "\n"
 "  -C, --compression[=LEVEL]\n"
 "                         compress archives at LEVEL"
 msgstr ""
+"\n"
+"  -C, --compression[=STUFE]\n"
+"                         Archive auf der STUFE komprimieren"
 
-#: guix/scripts/publish.scm:68
+#: guix/scripts/publish.scm:79
+msgid ""
+"\n"
+"  -c, --cache=DIRECTORY  cache published items to DIRECTORY"
+msgstr ""
+"\n"
+"  -c, --cache=VERZEICHNIS\n"
+"                         veröffentlichte Objekte im VERZEICHNIS\n"
+"                           zwischenspeichern"
+
+#: guix/scripts/publish.scm:81
+msgid ""
+"\n"
+"      --workers=N        use N workers to bake items"
+msgstr ""
+"\n"
+"      --workers=N        mit N Worker-Threads angeforderte Objekte in den\n"
+"                           Zwischenspeicher einlagern"
+
+#: guix/scripts/publish.scm:83
 msgid ""
 "\n"
 "      --ttl=TTL          announce narinfos can be cached for TTL seconds"
 msgstr ""
+"\n"
+"      --ttl=TTL          dem Client mitteilen, dass heruntergeladene Narinfos\n"
+"                           TTL Sekunden lang gültig bleiben"
 
-#: guix/scripts/publish.scm:70
+#: guix/scripts/publish.scm:85
+msgid ""
+"\n"
+"      --nar-path=PATH    use PATH as the prefix for nar URLs"
+msgstr ""
+"\n"
+"      --nar-path=PFAD    den Pfad als das Präfix für Nar-URLs benutzen"
+
+#: guix/scripts/publish.scm:87
+msgid ""
+"\n"
+"      --public-key=FILE  use FILE as the public key for signatures"
+msgstr ""
+"\n"
+"      --public-key=DATEI\n"
+"                         öffentlichen Schlüssel für Signaturen aus DATEI laden"
+
+#: guix/scripts/publish.scm:89
+msgid ""
+"\n"
+"      --private-key=FILE use FILE as the private key for signatures"
+msgstr ""
+"\n"
+"      --private-key=DATEI\n"
+"                         privaten Schlüssel für Signaturen aus DATEI laden"
+
+#: guix/scripts/publish.scm:91
 msgid ""
 "\n"
 "  -r, --repl[=PORT]      spawn REPL server on PORT"
 msgstr ""
+"\n"
+"  -r, --repl[=PORT]      auf PORT einen REPL-Server erzeugen"
 
-#: guix/scripts/publish.scm:86
+#: guix/scripts/publish.scm:107
 #, scheme-format
 msgid "lookup of host '~a' failed: ~a~%"
 msgstr "Suche nach Host »~a« ist fehlgeschlagen: ~a~%"
 
-#: guix/scripts/publish.scm:124
+#: guix/scripts/publish.scm:152
 #, scheme-format
 msgid "lookup of host '~a' returned nothing"
 msgstr "Suche nach Host »~a« lieferte kein Ergebnis"
 
-#: guix/scripts/publish.scm:137
+#: guix/scripts/publish.scm:165
 #, scheme-format
 msgid "zlib support is missing; compression disabled~%"
-msgstr ""
+msgstr "zlib-Unterstützung fehlt; Kompression deaktiviert~%"
 
-#: guix/scripts/publish.scm:144
-#, fuzzy, scheme-format
-#| msgid "~a: invalid number~%"
+#: guix/scripts/publish.scm:179
+#, scheme-format
 msgid "~a: invalid duration~%"
-msgstr "~a: ungültige Zahl~%"
+msgstr "~a: Ungültige Dauer~%"
 
-#: guix/scripts/publish.scm:537
+#: guix/scripts/publish.scm:869
 #, scheme-format
 msgid "user '~a' not found: ~a~%"
 msgstr "Benutzer »~a« nicht gefunden: ~a~%"
 
-#: guix/scripts/publish.scm:574
+#: guix/scripts/publish.scm:910
 #, scheme-format
 msgid "server running as root; consider using the '--user' option!~%"
 msgstr ""
+"Server läuft mit Administratorrechten; vielleicht beim\n"
+"Start »--user« übergeben!~%"
 
-#: guix/scripts/publish.scm:576
+#: guix/scripts/publish.scm:915
 #, scheme-format
 msgid "publishing ~a on ~a, port ~d~%"
 msgstr "~a wird auf ~a bereitgestellt, Port ~d~%"
@@ -1758,52 +2514,54 @@ msgid ""
 "Usage: guix edit PACKAGE...\n"
 "Start $VISUAL or $EDITOR to edit the definitions of PACKAGE...\n"
 msgstr ""
+"Aufruf: guix edit PAKET …\n"
+"Starte $VISUAL oder $EDITOR, um die Definitionen von PAKET zu bearbeiten …\n"
 
 #: guix/scripts/edit.scm:62
 #, scheme-format
 msgid "file '~a' not found in search path ~s~%"
 msgstr "Datei »~a« im Suchpfad ~s nicht gefunden~%"
 
-#: guix/scripts/edit.scm:83
+#: guix/scripts/edit.scm:90
 #, scheme-format
 msgid "source location of package '~a' is unknown~%"
-msgstr "Quellort des Pakets »~a« ist unbekannt~%"
+msgstr "Stelle im Quellcode für das Paket »~a« ist unbekannt~%"
 
-#: guix/scripts/edit.scm:96
+#: guix/scripts/edit.scm:103
 #, scheme-format
 msgid "failed to launch '~a': ~a~%"
 msgstr "»~a« konnte nicht gestartet werden: ~a~%"
 
-#: guix/scripts/size.scm:76
+#: guix/scripts/size.scm:77
 #, scheme-format
 msgid "no available substitute information for '~a'~%"
-msgstr ""
+msgstr "Keine Substitutinformationen für »~a« verfügbar.~%"
 
-#: guix/scripts/size.scm:84
+#: guix/scripts/size.scm:99
 msgid "store item"
-msgstr ""
+msgstr "Store-Objekt"
 
-#: guix/scripts/size.scm:84
+#: guix/scripts/size.scm:99
 msgid "total"
-msgstr ""
+msgstr "Gesamt"
 
-#: guix/scripts/size.scm:84
+#: guix/scripts/size.scm:99
 msgid "self"
-msgstr ""
+msgstr "Selbst"
 
-#: guix/scripts/size.scm:95
+#: guix/scripts/size.scm:107
 #, scheme-format
 msgid "total: ~,1f MiB~%"
-msgstr ""
+msgstr "Gesamt: ~,1f MiB~%"
 
 #. TRANSLATORS: This is the title of a graph, meaning that the graph
 #. represents a profile of the store (the "store" being the place where
 #. packages are stored.)
-#: guix/scripts/size.scm:206
+#: guix/scripts/size.scm:221
 msgid "store profile"
-msgstr ""
+msgstr "Store-Profil"
 
-#: guix/scripts/size.scm:215
+#: guix/scripts/size.scm:230
 msgid ""
 "Usage: guix size [OPTION]... PACKAGE\n"
 "Report the size of PACKAGE and its dependencies.\n"
@@ -1811,175 +2569,523 @@ msgstr ""
 "Aufruf: guix size [OPTION] … PAKET …\n"
 "Größe des PAKETs und seiner Abhängigkeiten ermitteln.\n"
 
-#: guix/scripts/size.scm:220
+#: guix/scripts/size.scm:235
 msgid ""
 "\n"
 "  -s, --system=SYSTEM    consider packages for SYSTEM--e.g., \"i686-linux\""
 msgstr ""
+"\n"
+"  -s, --system=SYSTEM    Pakete für SYSTEM in Betracht\n"
+"                           ziehen — z.B. »i686-linux«"
 
-#: guix/scripts/size.scm:222
+#. TRANSLATORS: "closure" and "self" must not be translated.
+#: guix/scripts/size.scm:238
+msgid ""
+"\n"
+"      --sort=KEY         sort according to KEY--\"closure\" or \"self\""
+msgstr ""
+"\n"
+"      --sort=SCHLÜSSEL   nach SCHLÜSSEL sortieren — »closure« oder »self«"
+
+#: guix/scripts/size.scm:240
 msgid ""
 "\n"
 "  -m, --map-file=FILE    write to FILE a graphical map of disk usage"
 msgstr ""
 "\n"
 "  -m, --map-file=DATEI   eine grafische Darstellung des Plattenplatzverbrauchs\n"
-"                         in DATEI schreiben"
+"                           in DATEI schreiben"
 
-#: guix/scripts/size.scm:276
+#: guix/scripts/size.scm:271
+#, scheme-format
+msgid "~a: invalid sorting key~%"
+msgstr "~a: Ungültiger Sortierschlüssel~%"
+
+#: guix/scripts/size.scm:306
 msgid "missing store item argument\n"
-msgstr ""
+msgstr "Kein Store-Objekt als Argument übergeben\n"
 
-#: guix/scripts/graph.scm:82
+#: guix/scripts/graph.scm:87
 #, scheme-format
 msgid "~a: invalid argument (package name expected)"
 msgstr "~a: Unzulässiges Argument (Paketname wurde erwartet)"
 
-#: guix/scripts/graph.scm:93
+#: guix/scripts/graph.scm:98
 msgid "the DAG of packages, excluding implicit inputs"
-msgstr ""
+msgstr "der gerichtete azyklische Paket-Graph ohne implizite Eingaben"
+
+#: guix/scripts/graph.scm:124
+msgid "the reverse DAG of packages"
+msgstr "der umgekehrte gerichtete azyklische Paket-Graph"
 
-#: guix/scripts/graph.scm:150
+#: guix/scripts/graph.scm:174
 msgid "the DAG of packages, including implicit inputs"
-msgstr ""
+msgstr "der gerichtete azyklische Paket-Graph mit impliziten Eingaben"
 
-#: guix/scripts/graph.scm:160
+#: guix/scripts/graph.scm:184
 msgid "the DAG of packages and origins, including implicit inputs"
-msgstr ""
+msgstr "der gerichtete azyklische Paket- und Ursprungs-Graph mit impliziten Eingaben"
 
-#: guix/scripts/graph.scm:191
+#: guix/scripts/graph.scm:214
 msgid "same as 'bag', but without the bootstrap nodes"
-msgstr ""
+msgstr "genau wie »bag«, aber ohne Bootstrap-Knoten"
 
-#: guix/scripts/graph.scm:237
+#: guix/scripts/graph.scm:256
 msgid "the DAG of derivations"
-msgstr ""
+msgstr "der gerichtete azyklische Ableitungsgraph"
 
-#: guix/scripts/graph.scm:249
-#, fuzzy
-#| msgid "unsupported signature version: ~a~%"
+#: guix/scripts/graph.scm:268
 msgid "unsupported argument for derivation graph"
-msgstr "Signaturversion wird nicht unterstützt: ~a~%"
+msgstr "Argument für Referenzgraph wird nicht unterstützt"
+
+#: guix/scripts/graph.scm:294
+msgid "unsupported argument for this type of graph"
+msgstr "Argument für diesen Typ von Graph wird nicht unterstützt"
 
-#: guix/scripts/graph.scm:270
+#: guix/scripts/graph.scm:307
 #, scheme-format
 msgid "references for '~a' are not known~%"
 msgstr "Referenzen für »~a« sind unbekannt~%"
 
-#: guix/scripts/graph.scm:277
+#: guix/scripts/graph.scm:314
 msgid "the DAG of run-time dependencies (store references)"
-msgstr ""
+msgstr "der gerichtete azyklische Laufzeitabhängigkeits-Graph (Store-Referenzen)"
 
-#: guix/scripts/graph.scm:290
-msgid "unsupported argument for reference graph"
-msgstr ""
+#: guix/scripts/graph.scm:330
+msgid "the DAG of referrers in the store"
+msgstr "der gerichtete azyklische Graph der Referenzen unter Store-Objekten"
+
+#: guix/scripts/graph.scm:360
+msgid "the graph of package modules"
+msgstr "der Graph der Paketmodule"
 
-#: guix/scripts/graph.scm:315
+#: guix/scripts/graph.scm:388
 #, scheme-format
 msgid "~a: unknown node type~%"
-msgstr "~a: unbekannter Node-Typ~%"
+msgstr "~a: Unbekannter Knotentyp~%"
 
-#: guix/scripts/graph.scm:319
+#: guix/scripts/graph.scm:395
+#, scheme-format
+msgid "~a: unknown backend~%"
+msgstr "~a: Unbekanntes Backend~%"
+
+#: guix/scripts/graph.scm:399
 msgid "The available node types are:\n"
-msgstr "Die gültigen Node-Typen sind:\n"
+msgstr "Die verfügbaren Knotenttypen sind:\n"
+
+#: guix/scripts/graph.scm:409
+msgid "The available backend types are:\n"
+msgstr "Die gültigen Backend-Typen sind:\n"
 
 #. TRANSLATORS: Here 'dot' is the name of a program; it must not be
 #. translated.
-#: guix/scripts/graph.scm:355
+#: guix/scripts/graph.scm:453
 msgid ""
 "Usage: guix graph PACKAGE...\n"
-"Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"
+"Emit a representation of the dependency graph of PACKAGE...\n"
+msgstr ""
+"Aufruf: guix graph PAKET …\n"
+"Eine Repräsentation für Graphviz (dot) der Abhängigkeiten von PAKET ausgeben …\n"
+
+#: guix/scripts/graph.scm:455
+msgid ""
+"\n"
+"  -b, --backend=TYPE     produce a graph with the given backend TYPE"
+msgstr ""
+"\n"
+"  -b, --backend=TYP      einen Graphen mit dem angegebenen Backend-TYP erzeugen"
+
+#: guix/scripts/graph.scm:457
+msgid ""
+"\n"
+"      --list-backends    list the available graph backends"
 msgstr ""
+"\n"
+"      --list-backends    verfügbare Graph-Backends auflisten"
 
-#: guix/scripts/graph.scm:357
+#: guix/scripts/graph.scm:459
 msgid ""
 "\n"
 "  -t, --type=TYPE        represent nodes of the given TYPE"
 msgstr ""
+"\n"
+"  -t, --type=TYP         Knoten des angegebenen TYPS darstellen"
 
-#: guix/scripts/graph.scm:359
+#: guix/scripts/graph.scm:461
 msgid ""
 "\n"
 "      --list-types       list the available graph types"
 msgstr ""
 "\n"
-"      --list-types       verfügbare Diagrammtypen auflisten"
+"      --list-types       verfügbare Knotentypen auflisten"
 
-#: guix/scripts/graph.scm:361
+#: guix/scripts/graph.scm:463 guix/scripts/pack.scm:644
 msgid ""
 "\n"
 "  -e, --expression=EXPR  consider the package EXPR evaluates to"
 msgstr ""
+"\n"
+"  -e, --expression=AUSDRUCK\n"
+"                         das Paket betrachten, zu dem AUSDRUCK ausgewertet wird"
 
-#: guix/scripts/challenge.scm:105
+#: guix/scripts/challenge.scm:191
 #, scheme-format
-msgid "~a: no substitute at '~a'~%"
-msgstr ""
+msgid "  local hash: ~a~%"
+msgstr "  lokale Prüfsumme: ~a~%"
 
-#: guix/scripts/challenge.scm:121
+#: guix/scripts/challenge.scm:192
 #, scheme-format
-msgid "no substitutes for '~a'~%"
-msgstr ""
+msgid "  no local build for '~a'~%"
+msgstr "Kein lokal erstelltes »~a«~%"
 
-#: guix/scripts/challenge.scm:138 guix/scripts/challenge.scm:158
+#: guix/scripts/challenge.scm:194
 #, scheme-format
-msgid "no local build for '~a'~%"
-msgstr ""
+msgid "  ~50a: ~a~%"
+msgstr "  ~50a: ~a~%"
 
-#: guix/scripts/challenge.scm:155
+#: guix/scripts/challenge.scm:202
 #, scheme-format
 msgid "~a contents differ:~%"
-msgstr ""
+msgstr "Inhalt von ~a verschieden:~%"
 
-#: guix/scripts/challenge.scm:157
+#: guix/scripts/challenge.scm:205
 #, scheme-format
-msgid "  local hash: ~a~%"
-msgstr "  lokale Prüfsumme: ~a~%"
+msgid "could not challenge '~a': no local build~%"
+msgstr "»~a« konnte nicht angefochten werden: keine lokale Erstellung~%"
 
-#: guix/scripts/challenge.scm:162
+#: guix/scripts/challenge.scm:207
 #, scheme-format
-msgid "  ~50a: ~a~%"
-msgstr "  ~50a: ~a~%"
+msgid "could not challenge '~a': no substitutes~%"
+msgstr "»~a« konnte nicht angefochten werden: keine Substitute~%"
 
-#: guix/scripts/challenge.scm:166
+#: guix/scripts/challenge.scm:210
 #, scheme-format
-msgid "  ~50a: unavailable~%"
-msgstr "  ~50a: nicht verfügbar~%"
+msgid "~a contents match:~%"
+msgstr "Inhalt von ~a stimmt überein:~%"
+
+#: guix/scripts/challenge.scm:219
+msgid "~h store items were analyzed:~%"
+msgstr "~h Store-Objekte wurden analysiert:~%"
+
+#: guix/scripts/challenge.scm:220
+msgid "  - ~h (~,1f%) were identical~%"
+msgstr "  — ~h (~,1f%) waren identisch~%"
+
+#: guix/scripts/challenge.scm:222
+msgid "  - ~h (~,1f%) differed~%"
+msgstr "  — ~h (~,1f%) unterscheiden sich~%"
 
-#: guix/scripts/challenge.scm:176
+#: guix/scripts/challenge.scm:224
+msgid "  - ~h (~,1f%) were inconclusive~%"
+msgstr "  — ~h (~,1f%) blieben ergebnislos~%"
+
+#: guix/scripts/challenge.scm:233
 msgid ""
 "Usage: guix challenge [PACKAGE...]\n"
 "Challenge the substitutes for PACKAGE... provided by one or more servers.\n"
 msgstr ""
+"Aufruf: guix challenge [PAKET …]\n"
+"Die Substitute für PAKET … anfechten, die von einem oder mehr Servern kommen.\n"
 
-#: guix/scripts/challenge.scm:178
+#: guix/scripts/challenge.scm:235
 msgid ""
 "\n"
 "      --substitute-urls=URLS\n"
 "                         compare build results with those at URLS"
 msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         Ergebnisse des Erstellens mit denen von URLS abgleichen"
+
+#: guix/scripts/challenge.scm:238
+msgid ""
+"\n"
+"      -v, --verbose      show details about successful comparisons"
+msgstr ""
+"\n"
+"      --verbose          Details über erfolgreiche Vergleiche anzeigen"
+
+#: guix/scripts/copy.scm:59
+#, scheme-format
+msgid "~a: invalid TCP port number~%"
+msgstr "~a: Ungültige TCP-Portnummer~%"
+
+#: guix/scripts/copy.scm:61
+#, scheme-format
+msgid "~a: invalid SSH specification~%"
+msgstr "~a: Ungültige SSH-Angaben~%"
+
+#: guix/scripts/copy.scm:113
+msgid ""
+"Usage: guix copy [OPTION]... ITEMS...\n"
+"Copy ITEMS to or from the specified host over SSH.\n"
+msgstr ""
+"Aufruf: guix copy [OPTION] … OBJEKTE …\n"
+"OBJEKTE zum oder vom angegebenen Host über SSH kopieren.\n"
+
+#: guix/scripts/copy.scm:115
+msgid ""
+"\n"
+"      --to=HOST          send ITEMS to HOST"
+msgstr ""
+"\n"
+"      --to=HOST          OBJEKTE an HOST senden"
+
+#: guix/scripts/copy.scm:117
+msgid ""
+"\n"
+"      --from=HOST        receive ITEMS from HOST"
+msgstr ""
+"\n"
+"      --from=HOST        OBJEKTE vom HOST beziehen"
+
+#: guix/scripts/copy.scm:169
+#, scheme-format
+msgid "use '--to' or '--from'~%"
+msgstr "Benutzen Sie »--to« oder »--from«~%"
+
+#: guix/scripts/pack.scm:89
+#, scheme-format
+msgid "~a: compressor not found~%"
+msgstr "~a: Kompressionsmethode nicht gefunden~%"
+
+#: guix/scripts/pack.scm:467
+#, scheme-format
+msgid ""
+"cross-compilation not implemented here;\n"
+"please email '~a'~%"
+msgstr ""
+"Cross-Kompilieren wurde hier nicht implementiert,\n"
+"bitte senden Sie eine E-Mail an »~a«~%"
+
+#: guix/scripts/pack.scm:621
+#, scheme-format
+msgid "~a: invalid symlink specification~%"
+msgstr "~a: Ungültige Angabe zur symbolischen Verknüpfung~%"
+
+#: guix/scripts/pack.scm:634
+msgid ""
+"Usage: guix pack [OPTION]... PACKAGE...\n"
+"Create a bundle of PACKAGE.\n"
+msgstr ""
+"Aufruf: guix pack [OPTION] … PAKET …\n"
+"Ein Bündel mit PAKET erstellen.\n"
+
+#: guix/scripts/pack.scm:640
+msgid ""
+"\n"
+"  -f, --format=FORMAT    build a pack in the given FORMAT"
+msgstr ""
+"\n"
+"  -f, --format=FORMAT    das Bündel im angegebenen Format erstellen"
+
+#: guix/scripts/pack.scm:642
+msgid ""
+"\n"
+"  -R, --relocatable      produce relocatable executables"
+msgstr ""
+"\n"
+"  -R, --relocatable      »portable« ausführbare Datei erzeugen"
+
+#: guix/scripts/pack.scm:650
+msgid ""
+"\n"
+"  -C, --compression=TOOL compress using TOOL--e.g., \"lzip\""
+msgstr ""
+"\n"
+"  -C, --compression=WERKZEUG\n"
+"                         mit dem WERKZEUG komprimieren — z.B. »lzip«"
 
-#: guix/gnu-maintenance.scm:532
+#: guix/scripts/pack.scm:652
+msgid ""
+"\n"
+"  -S, --symlink=SPEC     create symlinks to the profile according to SPEC"
+msgstr ""
+"\n"
+"  -S, --symlink=SPEZIFIKATION\n"
+"                         symbolische Verknüpfungen zum Profil erzeugen gemäß\n"
+"                           der SPEZIFIKATION"
+
+#: guix/scripts/pack.scm:654
+msgid ""
+"\n"
+"  -m, --manifest=FILE    create a pack with the manifest from FILE"
+msgstr ""
+"\n"
+"  -m, --manifest=DATEI   ein Bündel mit dem Manifest aus DATEI erzeugen"
+
+#: guix/scripts/pack.scm:656
+msgid ""
+"\n"
+"      --localstatedir    include /var/guix in the resulting pack"
+msgstr ""
+"\n"
+"      --localstatedir    »/var/guix« auch ins Bündel packen"
+
+#: guix/scripts/pack.scm:658
+msgid ""
+"\n"
+"      --bootstrap        use the bootstrap binaries to build the pack"
+msgstr ""
+"\n"
+"      --bootstrap        mit den Bootstrap-Binärdateien das Bündel erstellen"
+
+#: guix/scripts/pack.scm:700
+#, scheme-format
+msgid "both a manifest and a package list were given~%"
+msgstr "Es wurden sowohl ein Manifest als auch eine Paketliste angegeben~%"
+
+#: guix/scripts/pack.scm:743
+#, scheme-format
+msgid "~a: unknown pack format"
+msgstr "~a: Unbekanntes Bündelformat"
+
+#: guix/scripts/weather.scm:72
+msgid "computing ~h package derivations for ~a...~%"
+msgstr "~h Paketableitungen für ~a berechnen …~%"
+
+#: guix/scripts/weather.scm:161
+msgid "looking for ~h store items on ~a...~%"
+msgstr "Nach ~h Store-Objekten von ~a suchen …~%"
+
+#: guix/scripts/weather.scm:173
+msgid "  ~2,1f% substitutes available (~h out of ~h)~%"
+msgstr "  ~2,1f% Substitute verfügbar (~h von ~h)~%"
+
+#: guix/scripts/weather.scm:179
+#, scheme-format
+msgid "  unknown substitute sizes~%"
+msgstr "  Unbekannte Substitutgrößen~%"
+
+#: guix/scripts/weather.scm:182
+msgid "  ~,1h MiB of nars (compressed)~%"
+msgstr "  ~,1h MiB an Nars (komprimiert)~%"
+
+#: guix/scripts/weather.scm:183
+msgid "  at least ~,1h MiB of nars (compressed)~%"
+msgstr "  Mindestens ~,1h MiB an Nars (komprimiert)~%"
+
+#: guix/scripts/weather.scm:185
+msgid "  ~,1h MiB on disk (uncompressed)~%"
+msgstr "  ~,1h MiB auf der Platte (unkomprimiert)~%"
+
+#: guix/scripts/weather.scm:187
+msgid "  ~,3h seconds per request (~,1h seconds in total)~%"
+msgstr "  ~,3h Sekunden pro Anfrage (~,1h Sekunden insgesamt)~%"
+
+#: guix/scripts/weather.scm:189
+msgid "  ~,1h requests per second~%"
+msgstr "  ~,1h Anfragen pro Sekunde~%"
+
+#: guix/scripts/weather.scm:195
+#, scheme-format
+msgid "  (continuous integration information unavailable)~%"
+msgstr "  (Keine Informationen zu kontinuierlicher Integration verfügbar)~%"
+
+#: guix/scripts/weather.scm:198
+#, scheme-format
+msgid "  '~a' returned ~a (~s)~%"
+msgstr "  »~a« lieferte ~a (~s)~%"
+
+#: guix/scripts/weather.scm:215
+msgid "  ~,1f% (~h out of ~h) of the missing items are queued~%"
+msgstr "  ~,1f% (~h von ~h) der fehlenden Objekte sind in der Warteschlange~%"
+
+#: guix/scripts/weather.scm:221
+msgid "  at least ~h queued builds~%"
+msgstr "  Mindestens ~h Erstellungen in der Warteschlange~%"
+
+#: guix/scripts/weather.scm:222
+msgid "  ~h queued builds~%"
+msgstr "  ~h Erstellungen in der Warteschlange~%"
+
+#: guix/scripts/weather.scm:225
+#, scheme-format
+msgid "      ~a: ~a (~0,1f%)~%"
+msgstr "      ~a: ~a (~0,1f%)~%"
+
+#: guix/scripts/weather.scm:231
+#, scheme-format
+msgid "  build rate: ~1,2f builds per hour~%"
+msgstr "  Erstellungsgeschwindigkeit: ~1,2f Erstellungen pro Stunde~%"
+
+#: guix/scripts/weather.scm:235
+#, scheme-format
+msgid "      ~a: ~,2f builds per hour~%"
+msgstr "      ~a: ~,2f Erstellungen pro Stunde~%"
+
+#: guix/scripts/weather.scm:247
+msgid ""
+"Usage: guix weather [OPTIONS]\n"
+"Report the availability of substitutes.\n"
+msgstr ""
+"Aufruf: guix weather [OPTIONEN]\n"
+"Über die Verfügbarkeit von Substituten berichten.\n"
+
+#: guix/scripts/weather.scm:249
+msgid ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         check for available substitutes at URLS"
+msgstr ""
+"\n"
+"      --substitute-urls=URLS\n"
+"                         die auf URLS verfügbaren Substitute prüfen"
+
+#: guix/scripts/weather.scm:252
+msgid ""
+"\n"
+"  -m, --manifest=MANIFEST\n"
+"                         look up substitutes for packages specified in MANIFEST"
+msgstr ""
+"\n"
+"  -m, --manifest=MANIFEST\n"
+"                         Substitute für im Manifest angegebene Pakete suchen"
+
+#: guix/scripts/weather.scm:255
+msgid ""
+"\n"
+"  -s, --system=SYSTEM    consider substitutes for SYSTEM--e.g., \"i686-linux\""
+msgstr ""
+"\n"
+"  -s, --system=SYSTEM    Substitute für SYSTEM angeben — z.B. »i686-linux«"
+
+#: guix/scripts/weather.scm:279
+#, scheme-format
+msgid "~a: invalid URL~%"
+msgstr "~a: Ungültige URL~%"
+
+#: guix/gnu-maintenance.scm:570
 msgid "Updater for GNU packages"
 msgstr "Aktualisierungswerkzeug für GNU-Pakete"
 
-#: guix/gnu-maintenance.scm:539
-msgid "Updater for GNOME packages"
-msgstr "Aktualisierungswerkzeug für GNOME-Pakete"
+#: guix/gnu-maintenance.scm:579
+msgid "Updater for GNU packages only available via FTP"
+msgstr "Aktualisierungswerkzeug für GNU-Pakete, die nur über FTP verfügbar sind"
 
-#: guix/gnu-maintenance.scm:546
+#: guix/gnu-maintenance.scm:588
+msgid "Updater for KDE packages"
+msgstr "Aktualisierungswerkzeug für KDE-Pakete"
+
+#: guix/gnu-maintenance.scm:595
 msgid "Updater for X.org packages"
 msgstr "Aktualisierungswerkzeug für X.org-Pakete"
 
+#: guix/gnu-maintenance.scm:602
+msgid "Updater for packages hosted on kernel.org"
+msgstr "Aktualisierungswerkzeug für auf kernel.org gehostete Pakete"
+
 #: guix/scripts/container.scm:25
 msgid ""
 "Usage: guix container ACTION ARGS...\n"
 "Build and manipulate Linux containers.\n"
 msgstr ""
+"Aufruf: guix container AKTION ARGS …\n"
+"Linux-Container erstellen und verändern.\n"
 
 #: guix/scripts/container.scm:30
 msgid "   exec            execute a command inside of an existing container\n"
-msgstr "   exec            führt einen Befehl innerhalb eines vorhandenen Containers aus\n"
+msgstr "   exec            einen Befehl innerhalb eines vorhandenen Containers ausführen\n"
 
 #: guix/scripts/container.scm:53
 #, scheme-format
@@ -1996,130 +3102,162 @@ msgid ""
 "Usage: guix container exec PID COMMAND [ARGS...]\n"
 "Execute COMMMAND within the container process PID.\n"
 msgstr ""
+"Aufruf: guix container exec PID BEFEHL [ARGS …]\n"
+"Den BEFEHL im Container-Prozess mit Kennung PID ausführen.\n"
 
 #: guix/scripts/container/exec.scm:69
 #, scheme-format
 msgid "~a: extraneous argument~%"
-msgstr "~a: zusätzliches Argument~%"
+msgstr "~a: Zusätzliches Argument~%"
 
-#: guix/scripts/container/exec.scm:80
+#: guix/scripts/container/exec.scm:87
 #, scheme-format
 msgid "no pid specified~%"
-msgstr "Keine Prozess-ID angegeben~%"
+msgstr "Keine Prozesskennung (PID) angegeben~%"
 
-#: guix/scripts/container/exec.scm:83
+#: guix/scripts/container/exec.scm:90
 #, scheme-format
 msgid "no command specified~%"
 msgstr "Kein Befehl angegeben~%"
 
-#: guix/scripts/container/exec.scm:86
+#: guix/scripts/container/exec.scm:93
 #, scheme-format
 msgid "no such process ~d~%"
 msgstr "Kein solcher Prozess ~d~%"
 
-#: guix/scripts/container/exec.scm:94
+#: guix/scripts/container/exec.scm:105
 #, scheme-format
 msgid "exec failed with status ~d~%"
-msgstr ""
+msgstr "exec fehlgeschlagen mit Status ~d~%"
 
-#: guix/upstream.scm:157
+#: guix/upstream.scm:250
 #, scheme-format
 msgid "signature verification failed for `~a'~%"
 msgstr "Verifizierung der Signatur fehlgeschlagen für »~a«~%"
 
-#: guix/upstream.scm:159
+#: guix/upstream.scm:252
 #, scheme-format
 msgid "(could be because the public key is not in your keyring)~%"
 msgstr "(vielleicht befindet sich Ihr öffentlicher Schlüssel nicht im Schlüsselbund)~%"
 
-#: guix/upstream.scm:191
-msgid "gz"
-msgstr "gz"
-
-#: guix/upstream.scm:234
+#: guix/upstream.scm:337
 #, scheme-format
 msgid "~a: could not locate source file"
 msgstr "~a: Quelldatei konnte nicht gefunden werden"
 
-#: guix/upstream.scm:239
+#: guix/upstream.scm:342
 #, scheme-format
 msgid "~a: ~a: no `version' field in source; skipping~%"
-msgstr "~a: ~a: kein »version«-Feld in der Quelle; wird übersprungen~%"
+msgstr "~a: ~a: Kein »version«-Feld beim Quellort; wird übersprungen~%"
+
+#: guix/ui.scm:169
+#, scheme-format
+msgid "error: ~a: unbound variable"
+msgstr "Fehler: ~a: Nicht gebundene Variable"
 
-#: guix/ui.scm:238
+#: guix/ui.scm:265
 msgid "entering debugger; type ',bt' for a backtrace\n"
-msgstr ""
+msgstr "Debugger wird betreten; tippen Sie »,bt« für einen Backtrace\n"
+
+#: guix/ui.scm:314
+#, scheme-format
+msgid "hint: ~a~%"
+msgstr "Hinweis: ~a~%"
 
-#: guix/ui.scm:254 guix/ui.scm:271
+#: guix/ui.scm:330
+msgid "Did you forget a @code{use-modules} form?"
+msgstr "Vielleicht haben Sie eine @code{use-modules}-Form vergessen?"
+
+#: guix/ui.scm:332
+#, scheme-format
+msgid "Did you forget @code{(use-modules ~a)}?"
+msgstr "Vielleicht haben Sie @code{(use-modules ~a)} vergessen?"
+
+#: guix/ui.scm:341 guix/ui.scm:381 guix/ui.scm:388
 #, scheme-format
 msgid "failed to load '~a': ~a~%"
 msgstr "»~a« konnte nicht geladen werden: ~a~%"
 
-#: guix/ui.scm:257
+#: guix/ui.scm:348
+#, scheme-format
+msgid "~amissing closing parenthesis~%"
+msgstr "~aschließende Klammer fehlt~%"
+
+#: guix/ui.scm:353 guix/ui.scm:361 guix/ui.scm:692
 #, scheme-format
 msgid "~a: error: ~a~%"
 msgstr "~a: Fehler: ~a~%"
 
-#: guix/ui.scm:260 guix/ui.scm:529
+#: guix/ui.scm:368 guix/ui.scm:762
 #, scheme-format
 msgid "exception thrown: ~s~%"
-msgstr ""
+msgstr "Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:262 guix/ui.scm:280
+#: guix/ui.scm:372 guix/ui.scm:394
 #, scheme-format
 msgid "failed to load '~a':~%"
 msgstr "»~a« konnte nicht geladen werden:~%"
 
-#: guix/ui.scm:274
+#: guix/ui.scm:384
 #, scheme-format
 msgid "~a: warning: ~a~%"
 msgstr "~a: Warnung: ~a~%"
 
-#: guix/ui.scm:277
+#: guix/ui.scm:391
 #, scheme-format
 msgid "failed to load '~a': exception thrown: ~s~%"
-msgstr ""
+msgstr "»~a« konnte nicht geladen werden: Ausnahme ausgelöst: ~s~%"
 
-#: guix/ui.scm:289
+#: guix/ui.scm:424
 #, scheme-format
 msgid "failed to install locale: ~a~%"
 msgstr "Locale konnte nicht installiert werden: ~a~%"
 
-#: guix/ui.scm:308
+#. 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
+msgid "(C)"
+msgstr "©"
+
+#: guix/ui.scm:455
+msgid "the Guix authors\n"
+msgstr "die Guix-Autoren\n"
+
+#: guix/ui.scm:456
 msgid ""
-"Copyright (C) 2016 the Guix authors\n"
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
 "This is free software: you are free to change and redistribute it.\n"
 "There is NO WARRANTY, to the extent permitted by law.\n"
 msgstr ""
-"Copyright (C) 2016 Die Guix-Autoren\n"
 "Lizenz GPLv3+: GNU GPL Version 3 oder neuer <http://gnu.org/licenses/gpl.html>\n"
-"Dies ist freie Software: Sie können Sie ändern und weitergeben.\n"
+"Dies ist freie Software: Sie können sie ändern und weitergeben.\n"
 "Es gibt keine Garantie, soweit gesetzlich zulässig.\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address for this
 #. package.  Please add another line saying "Report translation bugs to
 #. ...\n" with the address for translation bugs (typically your translation
 #. team's web or email address).
-#: guix/ui.scm:320
+#: guix/ui.scm:468
 #, scheme-format
 msgid ""
 "\n"
 "Report bugs to: ~a."
 msgstr ""
 "\n"
-"Melden Sie Fehler an: ~a."
+"Melden Sie Fehler an: ~a.\n"
+"Melden Sie Übersetzungsfehler an: translation-team-de@lists.sourceforge.net."
 
-#: guix/ui.scm:322
+#: guix/ui.scm:470
 #, scheme-format
 msgid ""
 "\n"
 "~a home page: <~a>"
 msgstr ""
 "\n"
-"~a Homepage: <~a>"
+"Homepage von ~a: <~a>"
 
-#: guix/ui.scm:324
+#: guix/ui.scm:472
 msgid ""
 "\n"
 "General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -2127,227 +3265,292 @@ msgstr ""
 "\n"
 "Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>"
 
-#: guix/ui.scm:369
+#: guix/ui.scm:517
 #, scheme-format
 msgid "'~a' is not a valid regular expression: ~a~%"
 msgstr "»~a« ist kein gültiger regulärer Ausdruck: ~a~%"
 
-#: guix/ui.scm:375
+#: guix/ui.scm:523
 #, scheme-format
 msgid "~a: invalid number~%"
-msgstr "~a: ungültige Zahl~%"
+msgstr "~a: Ungültige Zahl~%"
 
-#: guix/ui.scm:392
+#: guix/ui.scm:540
 #, scheme-format
 msgid "invalid number: ~a~%"
 msgstr "Ungültige Zahl: ~a~%"
 
-#: guix/ui.scm:415
+#: guix/ui.scm:563
 #, scheme-format
 msgid "unknown unit: ~a~%"
 msgstr "Unbekannte Einheit: ~a~%"
 
-#: guix/ui.scm:432
+#: guix/ui.scm:578
 #, scheme-format
-msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
+msgid ""
+"You cannot have two different versions\n"
+"or variants of @code{~a} in the same profile."
 msgstr ""
+"Sie können keine zwei verschiedenen Versionen\n"
+"oder Varianten von @code{~a} im selben Profil haben."
 
-#: guix/ui.scm:439
+#: guix/ui.scm:581
 #, scheme-format
-msgid "~a: ~a: build system `~a' does not support cross builds~%"
+msgid ""
+"Try upgrading both @code{~a} and @code{~a},\n"
+"or remove one of them from the profile."
 msgstr ""
+"Versuchen Sie, sowohl @code{~a} als auch @code{~a} zu aktualisieren,\n"
+"oder entfernen Sie eines von beidem aus dem Profil."
 
-#: guix/ui.scm:444
+#: guix/ui.scm:600
+#, scheme-format
+msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
+msgstr "~a:~a:~a: Paket »~a« hat eine ungültige Eingabe: ~s~%"
+
+#: guix/ui.scm:607
+#, scheme-format
+msgid "~a: ~a: build system `~a' does not support cross builds~%"
+msgstr "~a: ~a: Erstellungssystem »~a« unterstützt kein Cross-Erstellen~%"
+
+#: guix/ui.scm:613
+#, scheme-format
+msgid "~s: invalid G-expression input~%"
+msgstr "~s: Ungültige Eingabe eines G-Ausdrucks~%"
+
+#: guix/ui.scm:616
 #, scheme-format
 msgid "profile '~a' does not exist~%"
 msgstr "Profil »~a« existiert nicht~%"
 
-#: guix/ui.scm:447
+#: guix/ui.scm:619
 #, scheme-format
 msgid "generation ~a of profile '~a' does not exist~%"
 msgstr "Generation ~a des Profils »~a« existiert nicht~%"
 
-#: guix/ui.scm:454
+#: guix/ui.scm:628
+#, scheme-format
+msgid "   ... propagated from ~a@~a~%"
+msgstr "   … propagatiert von ~a@~a~%"
+
+#: guix/ui.scm:638
+#, scheme-format
+msgid "profile contains conflicting entries for ~a~a~%"
+msgstr "Profil enthält im Konflikt stehende Einträge für ~a~a~%"
+
+#: guix/ui.scm:641
+#, scheme-format
+msgid "  first entry: ~a@~a~a ~a~%"
+msgstr "  erster Eintrag: ~a@~a~a ~a~%"
+
+#: guix/ui.scm:647
+#, scheme-format
+msgid "  second entry: ~a@~a~a ~a~%"
+msgstr "  zweiter Eintrag: ~a@~a~a ~a~%"
+
+#: guix/ui.scm:659
 #, scheme-format
 msgid "corrupt input while restoring '~a' from ~s~%"
 msgstr "Beschädigte Eingabe, während »~a« aus »~s« wiederhergestellt wurde~%"
 
-#: guix/ui.scm:456
+#: guix/ui.scm:661
 #, scheme-format
 msgid "corrupt input while restoring archive from ~s~%"
 msgstr "Beschädigte Eingabe, während das Archiv aus »~s« wiederhergestellt wurde~%"
 
-#: guix/ui.scm:459
+#: guix/ui.scm:664
 #, scheme-format
 msgid "failed to connect to `~a': ~a~%"
 msgstr "Verbindung zu »~a« fehlgeschlagen: ~a~%"
 
-#: guix/ui.scm:464
+#: guix/ui.scm:669
 #, scheme-format
 msgid "build failed: ~a~%"
 msgstr "Erstellung fehlgeschlagen: ~a~%"
 
-#: guix/ui.scm:467
+#: guix/ui.scm:672
 #, scheme-format
 msgid "reference to invalid output '~a' of derivation '~a'~%"
-msgstr ""
+msgstr "Referenz auf ungültige Ausgabe »~a« der Ableitung »~a«~%"
 
-#: guix/ui.scm:471
+#: guix/ui.scm:676
 #, scheme-format
 msgid "file '~a' could not be found in these directories:~{ ~a~}~%"
 msgstr "Datei »~a« konnte in diesen Verzeichnissen nicht gefunden werden:~{ ~a~}~%"
 
-#: guix/ui.scm:483
+#: guix/ui.scm:681
+#, scheme-format
+msgid "program exited~@[ with non-zero exit status ~a~]~@[ terminated by signal ~a~]~@[ stopped by signal ~a~]: ~s~%"
+msgstr "Programm wurde~@[ mit Exit-Status ~a ungleich null~] beendet~@[ durch Signal ~a~]~@[, angehalten durch Signal ~a~]: ~s~%"
+
+#: guix/ui.scm:712
 #, scheme-format
 msgid "~a: ~a~%"
 msgstr "~a: ~a~%"
 
-#: guix/ui.scm:518
+#: guix/ui.scm:747
 #, scheme-format
 msgid "failed to read expression ~s: ~s~%"
 msgstr "Ausdruck ~s konnte nicht gelesen werden: ~s~%"
 
-#: guix/ui.scm:524
+#: guix/ui.scm:753
 #, scheme-format
 msgid "failed to evaluate expression '~a':~%"
 msgstr "Ausdruck »~a« kann nicht ausgewertet werden:~%"
 
-#: guix/ui.scm:527
+#: guix/ui.scm:756
 #, scheme-format
 msgid "syntax error: ~a~%"
 msgstr "Syntaxfehler: ~a~%"
 
-#: guix/ui.scm:541
+#: guix/ui.scm:774
 #, scheme-format
 msgid "expression ~s does not evaluate to a package~%"
 msgstr "Ausdruck ~s ergibt kein Paket~%"
 
-#: guix/ui.scm:603
+#: guix/ui.scm:793
+msgid "at least ~,1h MB needed but only ~,1h MB available in ~a~%"
+msgstr "Mindestens ~,1h MB werden gebraucht, aber nur ~,1h MB sind verfügbar in ~a~%"
+
+#: guix/ui.scm:861
 #, scheme-format
 msgid "~:[The following derivation would be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations would be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[Folgende Ableitung würde erstellt:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Folgende Ableitungen würden erstellt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:608
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:869
+msgid "~:[~,1h MB would be downloaded:~%~{   ~a~%~}~;~]"
+msgstr "~:[~,1h MB würden heruntergeladen:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:874
 #, scheme-format
 msgid "~:[The following file would be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files would be downloaded:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[Folgende Datei würde heruntergeladen:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Folgende Dateien würden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:614
+#: guix/ui.scm:881
 #, scheme-format
 msgid "~:[The following derivation will be built:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following derivations will be built:~%~{   ~a~%~}~;~]"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "~:[Folgende Ableitung wird erstellt:~%~{   ~a~%~}~;~]"
+msgstr[1] "~:[Folgende Ableitungen werden erstellt:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:619
+#. TRANSLATORS: "MB" is for "megabyte"; it should be
+#. translated to the corresponding abbreviation.
+#: guix/ui.scm:889
+msgid "~:[~,1h MB will be downloaded:~%~{   ~a~%~}~;~]"
+msgstr "~:[~,1h MB werden heruntergeladen:~%~{   ~a~%~}~;~]"
+
+#: guix/ui.scm:894
 #, scheme-format
 msgid "~:[The following file will be downloaded:~%~{   ~a~%~}~;~]"
 msgid_plural "~:[The following files will be downloaded:~%~{   ~a~%~}~;~]"
 msgstr[0] "~:[Die folgende Datei wird heruntergeladen:~%~{   ~a~%~}~;~]"
 msgstr[1] "~:[Die folgenden Dateien werden heruntergeladen:~%~{   ~a~%~}~;~]"
 
-#: guix/ui.scm:674
+#: guix/ui.scm:954
 #, scheme-format
 msgid "The following package would be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
-msgstr[0] "Das folgende Paket würde entfernt werden:~%~{~a~%~}~%"
-msgstr[1] "Die folgenden Pakete würden entfernt werden:~%~{~a~%~}~%"
+msgstr[0] "Das folgende Paket würde entfernt:~%~{~a~%~}~%"
+msgstr[1] "Die folgenden Pakete würden entfernt:~%~{~a~%~}~%"
 
-#: guix/ui.scm:679
+#: guix/ui.scm:959
 #, scheme-format
 msgid "The following package will be removed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
-msgstr[0] "Das folgende Paket würde entfernt werden:~%~{~a~%~}~%"
-msgstr[1] "Die folgenden Pakete würden entfernt werden:~%~{~a~%~}~%"
+msgstr[0] "Das folgende Paket wird entfernt:~%~{~a~%~}~%"
+msgstr[1] "Die folgenden Pakete werden entfernt:~%~{~a~%~}~%"
 
-#: guix/ui.scm:692
+#: guix/ui.scm:972
 #, scheme-format
 msgid "The following package would be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be downgraded:~%~{~a~%~}~%"
-msgstr[0] "Die Version des folgenden Pakets würde heruntergestuft werden:~%~{~a~%~}~%"
-msgstr[1] "Die Version der folgenden Pakete würde heruntergestuft werden:~%~{~a~%~}~%"
+msgstr[0] "Die Version des folgenden Pakets würde heruntergestuft:~%~{~a~%~}~%"
+msgstr[1] "Die Version der folgenden Pakete würde heruntergestuft:~%~{~a~%~}~%"
 
-#: guix/ui.scm:697
+#: guix/ui.scm:977
 #, scheme-format
 msgid "The following package will be downgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be downgraded:~%~{~a~%~}~%"
 msgstr[0] "Die Version des folgenden Pakets wird heruntergestuft:~%~{~a~%~}~%"
 msgstr[1] "Die Version der folgenden Pakete wird heruntergestuft:~%~{~a~%~}~%"
 
-#: guix/ui.scm:710
+#: guix/ui.scm:990
 #, scheme-format
 msgid "The following package would be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
-msgstr[0] "Das folgende Paket würde aktualisiert werden:~%~{~a~%~}~%"
-msgstr[1] "Die folgenden Pakete würden aktualisiert werden:~%~{~a~%~}~%"
+msgstr[0] "Das folgende Paket würde aktualisiert:~%~{~a~%~}~%"
+msgstr[1] "Die folgenden Pakete würden aktualisiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:715
+#: guix/ui.scm:995
 #, scheme-format
 msgid "The following package will be upgraded:~%~{~a~%~}~%"
 msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket wird aktualisiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete werden aktualisiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:726
+#: guix/ui.scm:1006
 #, scheme-format
 msgid "The following package would be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
-msgstr[0] "Das folgende Paket würde installiert werden:~%~{~a~%~}~%"
-msgstr[1] "Die folgenden Pakete würden installiert werden:~%~{~a~%~}~%"
+msgstr[0] "Das folgende Paket würde installiert:~%~{~a~%~}~%"
+msgstr[1] "Die folgenden Pakete würden installiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:731
+#: guix/ui.scm:1011
 #, scheme-format
 msgid "The following package will be installed:~%~{~a~%~}~%"
 msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
 msgstr[0] "Das folgende Paket wird installiert:~%~{~a~%~}~%"
 msgstr[1] "Die folgenden Pakete werden installiert:~%~{~a~%~}~%"
 
-#: guix/ui.scm:748
+#: guix/ui.scm:1028
 msgid "<unknown location>"
-msgstr "<unbekannter Ort>"
+msgstr "<unbekannte Stelle>"
 
-#: guix/ui.scm:767
-#, scheme-format
-msgid "failed to create configuration directory `~a': ~a~%"
-msgstr "Konfigurationsverzeichnis »~a« konnte nicht angelegt werden: ~a~%"
-
-#: guix/ui.scm:890 guix/ui.scm:904
-msgid "unknown"
-msgstr "unbekannt"
-
-#: guix/ui.scm:1062
+#: guix/ui.scm:1390
 #, scheme-format
 msgid "Generation ~a\t~a"
 msgstr "Generation ~a\t~a"
 
+#. TRANSLATORS: This is a format-string for date->string.
+#. Please choose a format that corresponds to the
+#. usual way of presenting dates in your locale.
+#. See https://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Date-to-string.html
+#. for details.
+#: guix/ui.scm:1399
+#, scheme-format
+msgid "~b ~d ~Y ~T"
+msgstr "~d. ~B ~Y ~T"
+
 #. TRANSLATORS: The word "current" here is an adjective for
 #. "Generation", as in "current generation".  Use the appropriate
 #. gender where applicable.
-#: guix/ui.scm:1072
+#: guix/ui.scm:1405
 #, scheme-format
 msgid "~a\t(current)~%"
 msgstr "~a\t(aktuell)~%"
 
-#: guix/ui.scm:1089
+#: guix/ui.scm:1448
 #, scheme-format
 msgid "switched from generation ~a to ~a~%"
 msgstr "Von Generation »~a« zu »~a« gewechselt~%"
 
-#: guix/ui.scm:1105
+#: guix/ui.scm:1464
 #, scheme-format
 msgid "deleting ~a~%"
 msgstr "~a wird gelöscht~%"
 
-#: guix/ui.scm:1153
+#: guix/ui.scm:1495
 #, scheme-format
 msgid "Try `guix --help' for more information.~%"
 msgstr "Rufen Sie »guix --help« auf, um weitere Informationen zu erhalten.~%"
 
-#: guix/ui.scm:1180
+#: guix/ui.scm:1523
 msgid ""
 "Usage: guix COMMAND ARGS...\n"
 "Run COMMAND with ARGS.\n"
@@ -2355,209 +3558,257 @@ msgstr ""
 "Aufruf: guix BEFEHL ARGUMENTE …\n"
 "BEFEHL mit ARGUMENTEN ausführen.\n"
 
-#: guix/ui.scm:1183
+#: guix/ui.scm:1526
 msgid "COMMAND must be one of the sub-commands listed below:\n"
 msgstr "BEFEHL muss einer der unten aufgelisteten Unterbefehle sein:\n"
 
-#: guix/ui.scm:1203
+#: guix/ui.scm:1546
 #, scheme-format
 msgid "guix: ~a: command not found~%"
 msgstr "guix: ~a: Befehl nicht gefunden~%"
 
-#: guix/ui.scm:1220
+#: guix/ui.scm:1576
 #, scheme-format
 msgid "guix: missing command name~%"
 msgstr "guix: Befehlsname fehlt~%"
 
-#: guix/ui.scm:1228
+#: guix/ui.scm:1584
 #, scheme-format
 msgid "guix: unrecognized option '~a'~%"
-msgstr "guix: nicht erkannte Option »~a«~%"
+msgstr "guix: Nicht erkannte Option »~a«~%"
 
-#: guix/http-client.scm:266
+#: guix/http-client.scm:117
 #, scheme-format
 msgid "following redirection to `~a'...~%"
 msgstr "Weiterleitung zu »~a« wird gefolgt …~%"
 
-#: guix/http-client.scm:275
-msgid "download failed"
-msgstr "Herunterladen fehlgeschlagen"
+#: guix/http-client.scm:129
+#, scheme-format
+msgid "~a: HTTP download failed: ~a (~s)"
+msgstr "~a: Herunterladen über HTTP fehlgeschlagen: ~a (~s)"
 
-#: guix/nar.scm:155
+#: guix/nar.scm:156
 msgid "signature is not a valid s-expression"
 msgstr "Signatur ist kein gültiger s-Ausdruck"
 
-#: guix/nar.scm:164
+#: guix/nar.scm:165
 msgid "invalid signature"
 msgstr "Ungültige Signatur"
 
-#: guix/nar.scm:168
+#: guix/nar.scm:169
 msgid "invalid hash"
 msgstr "Ungültige Prüfsumme"
 
-#: guix/nar.scm:176
+#: guix/nar.scm:177
 msgid "unauthorized public key"
 msgstr "Nicht autorisierter öffentlicher Schlüssel"
 
-#: guix/nar.scm:181
+#: guix/nar.scm:182
 msgid "corrupt signature data"
 msgstr "Signaturdaten beschädigt"
 
-#: guix/nar.scm:201
+#: guix/nar.scm:202
 msgid "corrupt file set archive"
-msgstr ""
+msgstr "Dateienarchiv beschädigt"
 
-#: guix/nar.scm:211
+#: guix/nar.scm:212
 #, scheme-format
 msgid "importing file or directory '~a'...~%"
 msgstr "Datei oder Verzeichnis »~a« wird importiert …~%"
 
-#: guix/nar.scm:222
+#: guix/nar.scm:223
 #, scheme-format
 msgid "found valid signature for '~a'~%"
 msgstr "Gültige Signatur für »~a« gefunden~%"
 
-#: guix/nar.scm:229
+#: guix/nar.scm:230
 msgid "imported file lacks a signature"
 msgstr "Der importierten Datei fehlt eine Signatur"
 
-#: guix/nar.scm:268
+#: guix/nar.scm:269
 msgid "invalid inter-file archive mark"
-msgstr ""
+msgstr "Ungültige Archiv-Markierung zwischen Dateien"
 
-#: nix/nix-daemon/guix-daemon.cc:61
+#: nix/nix-daemon/guix-daemon.cc:66
 msgid "guix-daemon -- perform derivation builds and store accesses"
-msgstr ""
+msgstr "guix-daemon — Ableitungserstellungen und Store-Zugriffe durchführen"
 
-#: nix/nix-daemon/guix-daemon.cc:63
+#: nix/nix-daemon/guix-daemon.cc:68
 msgid "This program is a daemon meant to run in the background.  It serves requests sent over a Unix-domain socket.  It accesses the store, and builds derivations on behalf of its clients."
-msgstr ""
+msgstr "Dieses Programm ist ein Dienst, der im Hintergrund laufen soll. Es führt über einen Unix-Socket gesendete Anfragen aus. Es greift auf den Store zu und erstellt von seinen Clients angeforderte Ableitungen."
 
-#: nix/nix-daemon/guix-daemon.cc:87
+#: nix/nix-daemon/guix-daemon.cc:95
 msgid "SYSTEM"
 msgstr "SYSTEM"
 
-#: nix/nix-daemon/guix-daemon.cc:88
+#: nix/nix-daemon/guix-daemon.cc:96
 msgid "assume SYSTEM as the current system type"
 msgstr "SYSTEM als aktuellen Systemtyp annehmen"
 
-#: nix/nix-daemon/guix-daemon.cc:89 nix/nix-daemon/guix-daemon.cc:92
+#: nix/nix-daemon/guix-daemon.cc:97 nix/nix-daemon/guix-daemon.cc:100
 msgid "N"
 msgstr "N"
 
-#: nix/nix-daemon/guix-daemon.cc:90
+#: nix/nix-daemon/guix-daemon.cc:98
 msgid "use N CPU cores to build each derivation; 0 means as many as available"
-msgstr ""
+msgstr "N CPU-Kerne zum Erstellen jeder Ableitung benutzen; 0 heißt alle verfügbaren Kerne"
 
-#: nix/nix-daemon/guix-daemon.cc:93
+#: nix/nix-daemon/guix-daemon.cc:101
 msgid "allow at most N build jobs"
-msgstr ""
+msgstr "höchstens N Erstellungs-Jobs zulassen"
 
-#: nix/nix-daemon/guix-daemon.cc:95
+#: nix/nix-daemon/guix-daemon.cc:102 nix/nix-daemon/guix-daemon.cc:104
+msgid "SECONDS"
+msgstr "SEKUNDEN"
+
+#: nix/nix-daemon/guix-daemon.cc:103
+msgid "mark builds as failed after SECONDS of activity"
+msgstr "Erstellungen als Fehler markieren nach SEKUNDEN-langer Aktivität"
+
+#: nix/nix-daemon/guix-daemon.cc:105
+msgid "mark builds as failed after SECONDS of silence"
+msgstr "Erstellungen als Fehler markieren nach SEKUNDEN-langer Stille"
+
+#: nix/nix-daemon/guix-daemon.cc:107
 msgid "disable chroot builds"
-msgstr ""
+msgstr "chroot-Erstellungen deaktivieren"
 
-#: nix/nix-daemon/guix-daemon.cc:96
+#: nix/nix-daemon/guix-daemon.cc:108
 msgid "DIR"
-msgstr "VERZ"
+msgstr "VERZEICHNIS"
 
-#: nix/nix-daemon/guix-daemon.cc:97
+#: nix/nix-daemon/guix-daemon.cc:109
 msgid "add DIR to the build chroot"
-msgstr ""
+msgstr "VERZEICHNIS zum Erstellungs-chroot hinzufügen"
 
-#: nix/nix-daemon/guix-daemon.cc:98
+#: nix/nix-daemon/guix-daemon.cc:110
 msgid "GROUP"
 msgstr "GRUPPE"
 
-#: nix/nix-daemon/guix-daemon.cc:99
+#: nix/nix-daemon/guix-daemon.cc:111
 msgid "perform builds as a user of GROUP"
-msgstr ""
+msgstr "Erstellungen als ein Nutzer der GRUPPE durchführen"
 
-#: nix/nix-daemon/guix-daemon.cc:101
+#: nix/nix-daemon/guix-daemon.cc:113
 msgid "do not use substitutes"
-msgstr ""
+msgstr "keine Substitute benutzen"
 
-#: nix/nix-daemon/guix-daemon.cc:102
+#: nix/nix-daemon/guix-daemon.cc:114
 msgid "URLS"
 msgstr "URLS"
 
-#: nix/nix-daemon/guix-daemon.cc:103
+#: nix/nix-daemon/guix-daemon.cc:115
 msgid "use URLS as the default list of substitute providers"
-msgstr ""
+msgstr "URLS als die vorgegebene Liste von Substitutsanbietern nutzen"
 
-#: nix/nix-daemon/guix-daemon.cc:105
+#: nix/nix-daemon/guix-daemon.cc:117
 msgid "do not use the 'build hook'"
-msgstr ""
+msgstr "den »build hook« nicht benutzen"
 
-#: nix/nix-daemon/guix-daemon.cc:107
+#: nix/nix-daemon/guix-daemon.cc:119
 msgid "cache build failures"
-msgstr ""
+msgstr "Erstellungsfehler zwischenspeichern"
 
-#: nix/nix-daemon/guix-daemon.cc:109
+#: nix/nix-daemon/guix-daemon.cc:121
 msgid "build each derivation N times in a row"
-msgstr ""
+msgstr "jede Ableitung N-mal hintereinander erstellen"
 
-#: nix/nix-daemon/guix-daemon.cc:111
+#: nix/nix-daemon/guix-daemon.cc:123
 msgid "do not keep build logs"
 msgstr "Erstellungsprotokolle nicht behalten"
 
-#: nix/nix-daemon/guix-daemon.cc:113
+#: nix/nix-daemon/guix-daemon.cc:126
 msgid "disable compression of the build logs"
 msgstr "Erstellungsprotokolle nicht komprimieren"
 
-#: nix/nix-daemon/guix-daemon.cc:118
+#: nix/nix-daemon/guix-daemon.cc:128
+msgid "use the specified compression type for build logs"
+msgstr "die angegebene Kompressionsmethode für Erstellungsprotokolle verwenden"
+
+#: nix/nix-daemon/guix-daemon.cc:133
 msgid "disable automatic file \"deduplication\" in the store"
-msgstr ""
+msgstr "automatische Dateien-»Deduplizierung« im Store deaktivieren"
 
-#: nix/nix-daemon/guix-daemon.cc:128
+#: nix/nix-daemon/guix-daemon.cc:143
 msgid "impersonate Linux 2.6"
-msgstr ""
+msgstr "vorgeben, Linux 2.6 zu benutzen"
 
-#: nix/nix-daemon/guix-daemon.cc:132
+#: nix/nix-daemon/guix-daemon.cc:147
 msgid "tell whether the GC must keep outputs of live derivations"
-msgstr ""
+msgstr "ausgeben, ob der Müllsammler die Ausgaben lebendiger Ableitungen behalten muss"
 
-#: nix/nix-daemon/guix-daemon.cc:135
+#: nix/nix-daemon/guix-daemon.cc:150
 msgid "tell whether the GC must keep derivations corresponding to live outputs"
-msgstr ""
+msgstr "ausgeben, ob der Müllsammler die Ableitungen lebendiger Ausgaben behalten muss"
 
-#: nix/nix-daemon/guix-daemon.cc:138
+#: nix/nix-daemon/guix-daemon.cc:153
 msgid "SOCKET"
 msgstr "SOCKET"
 
-#: nix/nix-daemon/guix-daemon.cc:139
+#: nix/nix-daemon/guix-daemon.cc:154
 msgid "listen for connections on SOCKET"
-msgstr ""
+msgstr "auf Verbindungen an SOCKET lauschen"
 
-#: nix/nix-daemon/guix-daemon.cc:141
+#: nix/nix-daemon/guix-daemon.cc:156
 msgid "produce debugging output"
-msgstr ""
+msgstr "Debug-Ausgabe zur Fehlersuche erzeugen"
 
-#: nix/nix-daemon/guix-daemon.cc:201
-#, c-format
-msgid "error: %s: invalid number of rounds\n"
-msgstr ""
+#~ msgid "unrecognized option: ~a~%"
+#~ msgstr "Nicht erkannte Option: ~a~%"
 
-#: nix/nix-daemon/guix-daemon.cc:220 nix/nix-daemon/guix-daemon.cc:396
-#, c-format
-msgid "error: %s\n"
-msgstr "Fehler: %s\n"
+#~ msgid "tarball did not produce a single source directory"
+#~ msgstr "Entpacken des Tar-Archiv erzeugte kein einzelnes Quellverzeichnis"
 
-#: nix/nix-daemon/guix-daemon.cc:281
-#, c-format
-msgid "error: libgcrypt version mismatch\n"
-msgstr "Fehler: libgcrypt-Version passt nicht\n"
+#~ msgid "failed to unpack source code"
+#~ msgstr "Quellcode konnte nicht entpackt werden"
 
-#: nix/nix-daemon/guix-daemon.cc:372
-#, c-format
-msgid "warning: daemon is running as root, so using `--build-users-group' is highly recommended\n"
-msgstr ""
+#~ msgid "Guix already up to date\n"
+#~ msgstr "Guix ist bereits aktuell\n"
+
+#~ msgid "failed to update Guix, check the build log~%"
+#~ msgstr "Guix konnte nicht aktualisiert werden, schauen Sie in das Build-Protokoll~%"
+
+#~ msgid "~A: unexpected argument~%"
+#~ msgstr "~A: unerwartetes Argument~%"
+
+#~ msgid "failed to download up-to-date source, exiting\n"
+#~ msgstr "Aktueller Quellcode konnte nicht heruntergeladen werden, Abbruch\n"
+
+#, fuzzy
+#~| msgid "found valid signature for '~a'~%"
+#~ msgid "~%Found valid signature for ~a~%"
+#~ msgstr "Gültige Signatur für »~a« gefunden~%"
+
+#, fuzzy
+#~| msgid "~a~%"
+#~ msgid "From ~a~%"
+#~ msgstr "~a~%"
+
+#~ msgid "failed to install GRUB on device '~a'~%"
+#~ msgstr "GRUB konnte nicht auf Gerät »~a« installiert werden~%"
+
+#, fuzzy
+#~| msgid "failed to load '~a': ~a~%"
+#~ msgid "failed to lookup NIST host: ~a~%"
+#~ msgstr "»~a« konnte nicht geladen werden: ~a~%"
+
+#~ msgid "  ~50a: unavailable~%"
+#~ msgstr "  ~50a: nicht verfügbar~%"
+
+#~ msgid "gz"
+#~ msgstr "gz"
+
+#~ msgid "failed to create configuration directory `~a': ~a~%"
+#~ msgstr "Konfigurationsverzeichnis »~a« konnte nicht angelegt werden: ~a~%"
+
+#~ msgid "download failed"
+#~ msgstr "Herunterladen fehlgeschlagen"
 
-#~ msgid "looking for the latest release of GNU ~a..."
-#~ msgstr "Nach der letzten Veröffentlichung von GNU ~a wird gesucht …"
+#~ msgid "error: %s\n"
+#~ msgstr "Fehler: %s\n"
 
-#~ msgid "~a: package not found~%"
-#~ msgstr "~a: Paket nicht gefunden~%"
+#~ msgid "error: libgcrypt version mismatch\n"
+#~ msgstr "Fehler: libgcrypt-Version passt nicht\n"
 
 #~ msgid "too many arguments\n"
 #~ msgstr "Zu wenige Argumente\n"
diff --git a/tests/cpan.scm b/tests/cpan.scm
index e5bd0ae3a4..396744e529 100644
--- a/tests/cpan.scm
+++ b/tests/cpan.scm
@@ -97,7 +97,7 @@
                    ('propagated-inputs
                     ('quasiquote
                      (("perl-test-script" ('unquote 'perl-test-script)))))
-                   ('home-page "http://search.cpan.org/dist/Foo-Bar/")
+                   ('home-page "https://metacpan.org/release/Foo-Bar")
                    ('synopsis "Fizzle Fuzz")
                    ('description 'fill-in-yourself!)
                    ('license 'perl-license))
diff --git a/tests/debug-link.scm b/tests/debug-link.scm
new file mode 100644
index 0000000000..2dde3cb460
--- /dev/null
+++ b/tests/debug-link.scm
@@ -0,0 +1,158 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (test-debug-link)
+  #:use-module (guix elf)
+  #:use-module (guix build utils)
+  #:use-module (guix build debug-link)
+  #:use-module (guix gexp)
+  #:use-module (guix store)
+  #:use-module (guix tests)
+  #:use-module (guix monads)
+  #:use-module (guix derivations)
+  #:use-module (gnu packages bootstrap)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-64)
+  #:use-module (rnrs io ports)
+  #:use-module (ice-9 match))
+
+(define %guile-executable
+  (match (false-if-exception (readlink "/proc/self/exe"))
+    ((? string? program)
+     (and (file-exists? program) (elf-file? program)
+          program))
+    (_
+     #f)))
+
+(define read-elf
+  (compose parse-elf get-bytevector-all))
+
+(define %store
+  (open-connection-for-tests))
+
+(define-syntax-rule (test-assertm name exp)
+  (test-assert name
+    (run-with-store %store exp
+                    #:guile-for-build (%guile-for-build))))
+
+
+(test-begin "debug-link")
+
+(unless %guile-executable (test-skip 1))
+(test-assert "elf-debuglink"
+  (let ((elf (call-with-input-file %guile-executable read-elf)))
+    (match (call-with-values (lambda () (elf-debuglink elf)) list)
+      ((#f #f)                                    ;no '.gnu_debuglink' section
+       (pk 'no-debuglink #t))
+      (((? string? file) (? integer? crc))
+       (string-suffix? ".debug" file)))))
+
+;; Since we need %BOOTSTRAP-GCC and co., we have to skip the following tests
+;; when networking is unreachable because we'd fail to download it.
+(unless (network-reachable?) (test-skip 1))
+(test-assertm "elf-debuglink"
+  ;; Check whether we can compute the CRC just like objcopy, and whether we
+  ;; can retrieve it.
+  (let* ((code (plain-file "test.c" "int main () { return 42; }"))
+         (exp  (with-imported-modules '((guix build utils)
+                                        (guix build debug-link)
+                                        (guix elf))
+                 #~(begin
+                     (use-modules (guix build utils)
+                                  (guix build debug-link)
+                                  (guix elf)
+                                  (rnrs io ports))
+
+                     (define read-elf
+                       (compose parse-elf get-bytevector-all))
+
+                     (setenv "PATH" (string-join '(#$%bootstrap-gcc
+                                                   #$%bootstrap-binutils)
+                                                 "/bin:" 'suffix))
+                     (invoke "gcc" "-O0" "-g" #$code "-o" "exe")
+                     (copy-file "exe" "exe.debug")
+                     (invoke "strip" "--only-keep-debug" "exe.debug")
+                     (invoke "strip" "--strip-debug" "exe")
+                     (invoke "objcopy" "--add-gnu-debuglink=exe.debug"
+                             "exe")
+                     (call-with-values (lambda ()
+                                         (elf-debuglink
+                                          (call-with-input-file "exe"
+                                            read-elf)))
+                       (lambda (file crc)
+                         (call-with-output-file #$output
+                           (lambda (port)
+                             (let ((expected (call-with-input-file "exe.debug"
+                                               debuglink-crc32)))
+                               (write (list file (= crc expected))
+                                      port))))))))))
+    (mlet* %store-monad ((drv (gexp->derivation "debuglink" exp))
+                         (x   (built-derivations (list drv))))
+      (call-with-input-file (derivation->output-path drv)
+        (lambda (port)
+          (return (match (read port)
+                    (("exe.debug" #t) #t)
+                    (x                (pk 'fail x #f)))))))))
+
+(unless (network-reachable?) (test-skip 1))
+(test-assertm "set-debuglink-crc"
+  ;; Check whether 'set-debuglink-crc' successfully updates the CRC.
+  (let* ((code  (plain-file "test.c" "int main () { return 42; }"))
+         (debug (plain-file "exe.debug" "a"))
+         (exp   (with-imported-modules '((guix build utils)
+                                         (guix build debug-link)
+                                         (guix elf))
+                  #~(begin
+                      (use-modules (guix build utils)
+                                   (guix build debug-link)
+                                   (guix elf)
+                                   (rnrs io ports))
+
+                      (define read-elf
+                        (compose parse-elf get-bytevector-all))
+
+                      (setenv "PATH" (string-join '(#$%bootstrap-gcc
+                                                    #$%bootstrap-binutils)
+                                                  "/bin:" 'suffix))
+                      (invoke "gcc" "-O0" "-g" #$code "-o" "exe")
+                      (copy-file "exe" "exe.debug")
+                      (invoke "strip" "--only-keep-debug" "exe.debug")
+                      (invoke "strip" "--strip-debug" "exe")
+                      (invoke "objcopy" "--add-gnu-debuglink=exe.debug"
+                              "exe")
+                      (set-debuglink-crc "exe" #$debug)
+                      (call-with-values (lambda ()
+                                          (elf-debuglink
+                                           (call-with-input-file "exe"
+                                             read-elf)))
+                        (lambda (file crc)
+                          (call-with-output-file #$output
+                            (lambda (port)
+                              (write (list file crc) port)))))))))
+    (mlet* %store-monad ((drv (gexp->derivation "debuglink" exp))
+                         (x   (built-derivations (list drv))))
+      (call-with-input-file (derivation->output-path drv)
+        (lambda (port)
+          (return (match (read port)
+                    (("exe.debug" crc)
+                     (= crc (debuglink-crc32 (open-input-string "a"))))
+                    (x
+                     (pk 'fail x #f)))))))))
+
+(test-end "debug-link")