diff options
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") |