summaryrefslogtreecommitdiff
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")