From 180d7ac1638de76962b51ee507b2725f278b5aa4 Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sun, 20 Jul 2014 06:47:14 -0700 Subject: [PATCH 01/75] gnu: dfc: Update to 3.0.4. * gnu/packages/admin.scm (dfc): Update to version 3.0.4. --- gnu/packages/admin.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8b7a2c0303..ed15644a48 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -78,16 +78,16 @@ interface and is based on GNU Guile.") (define-public dfc (package (name "dfc") - (version "3.0.3") + (version "3.0.4") (source (origin (method url-fetch) (uri (string-append - "http://projects.gw-computing.net/attachments/download/78/dfc-" + "http://projects.gw-computing.net/attachments/download/79/dfc-" version ".tar.gz")) (sha256 (base32 - "1b4hfqv23l87cb37fxwzfk2sgspkyxpr3ig2hsd23hr6mm982j7z")))) + "0zk1ppx93ijimf4sbgqilxxikpsa2gmpbynknyh41xy7jbdjxp0b")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; There are no tests. (native-inputs `(("gettext" ,gnu-gettext))) From da891830dac44e531d21c6b3d3b76a14577a8de9 Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sun, 20 Jul 2014 06:48:58 -0700 Subject: [PATCH 02/75] gnu: htop: Update to 1.0.3. * gnu/packages/admin.scm (htop): Update to version 1.0.3. --- gnu/packages/admin.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ed15644a48..6a5968509d 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -101,14 +101,14 @@ graphs and can export its output to different formats.") (define-public htop (package (name "htop") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/htop/" + (uri (string-append "http://hisham.hm/htop/" version "/htop-" version ".tar.gz")) (sha256 (base32 - "18fqrhvnm7h4c3939av8lpiwrwxbyw6hcly0jvq0vkjf0ixnaq7f")))) + "0a8qbpsifzjwc4f45xfwm48jhm59g6q5hlib4bf7z13mgy95fp05")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) From 516e3b6f7a57f6b6f378c9174f8c5ffc990df7db Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 20 Jul 2014 11:22:46 -0500 Subject: [PATCH 03/75] guix: utils: Add fold-tree and fold-tree-leaves. * guix/utils.scm (fold-tree, fold-tree-leaves): New functions. * tests/utils.scm: Add tests for them. --- guix/utils.scm | 33 +++++++++++++++++++++++++++++++++ tests/utils.scm | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/guix/utils.scm b/guix/utils.scm index 700a191d71..b61ff2477d 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès ;;; Copyright © 2013 Mark H Weaver +;;; Copyright © 2014 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +73,8 @@ call-with-temporary-output-file with-atomic-file-output fold2 + fold-tree + fold-tree-leaves filtered-port compressed-port @@ -649,6 +652,36 @@ output port, and PROC's result is returned." (lambda (result1 result2) (fold2 proc result1 result2 (cdr lst1) (cdr lst2))))))))) +(define (fold-tree proc init children roots) + "Call (PROC NODE RESULT) for each node in the tree that is reachable from +ROOTS, using INIT as the initial value of RESULT. The order in which nodes +are traversed is not specified, however, each node is visited only once, based +on an eq? check. Children of a node to be visited are generated by +calling (CHILDREN NODE), the result of which should be a list of nodes that +are connected to NODE in the tree, or '() or #f if NODE is a leaf node." + (let loop ((result init) + (seen vlist-null) + (lst roots)) + (match lst + (() result) + ((head . tail) + (if (not (vhash-assq head seen)) + (loop (proc head result) + (vhash-consq head #t seen) + (match (children head) + ((or () #f) tail) + (children (append tail children)))) + (loop result seen tail)))))) + +(define (fold-tree-leaves proc init children roots) + "Like fold-tree, but call (PROC NODE RESULT) only for leaf nodes." + (fold-tree + (lambda (node result) + (match (children node) + ((or () #f) (proc node result)) + (else result))) + init children roots)) + ;;; ;;; Source location. diff --git a/tests/utils.scm b/tests/utils.scm index 8ad399f75c..611867ca09 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2014 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,7 +26,8 @@ #:use-module (srfi srfi-64) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) - #:use-module (ice-9 match)) + #:use-module (ice-9 match) + #:use-module (ice-9 vlist)) (define temp-file (string-append "t-utils-" (number->string (getpid)))) @@ -118,6 +120,37 @@ '(0 1 2 3))) list)) +(let* ((tree (alist->vhash + '((0 2 3) (1 3 4) (2) (3 5 6) (4 6) (5) (6)) + hashq)) + (add-one (lambda (_ r) (1+ r))) + (tree-lookup (lambda (n) (cdr (vhash-assq n tree))))) + (test-equal "fold-tree, single root" + 5 (fold-tree add-one 0 tree-lookup '(0))) + (test-equal "fold-tree, two roots" + 7 (fold-tree add-one 0 tree-lookup '(0 1))) + (test-equal "fold-tree, sum" + 16 (fold-tree + 0 tree-lookup '(0))) + (test-equal "fold-tree, internal" + 18 (fold-tree + 0 tree-lookup '(3 4))) + (test-equal "fold-tree, cons" + '(1 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(1)) <)) + (test-equal "fold-tree, overlapping paths" + '(1 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(1 4)) <)) + (test-equal "fold-tree, cons, two roots" + '(0 2 3 4 5 6) + (sort (fold-tree cons '() tree-lookup '(0 4)) <)) + (test-equal "fold-tree-leaves, single root" + 2 (fold-tree-leaves add-one 0 tree-lookup '(1))) + (test-equal "fold-tree-leaves, single root, sum" + 11 (fold-tree-leaves + 0 tree-lookup '(1))) + (test-equal "fold-tree-leaves, two roots" + 3 (fold-tree-leaves add-one 0 tree-lookup '(0 1))) + (test-equal "fold-tree-leaves, two roots, sum" + 13 (fold-tree-leaves + 0 tree-lookup '(0 1)))) + (test-assert "filtered-port, file" (let* ((file (search-path %load-path "guix.scm")) (input (open-file file "r0b"))) From 7d193ec34881843573a8013163347cfd8b1e9001 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 20 Jul 2014 11:29:48 -0500 Subject: [PATCH 04/75] guix: refresh: Add --list-dependent option. * guix/packages.scm (package-direct-inputs): New procedure. * gnu/packages.scm (vhash-refq, package-direct-dependents) (package-transitive-dependents, package-covering-dependents): New procedures. * guix/scripts/refresh.scm (%options, show-help, guix-refresh): Add --list-dependent option. * doc/guix.texi (Invoking guix refresh): Document '--list-dependent' option. --- doc/guix.texi | 25 ++++++++++++ gnu/packages.scm | 66 +++++++++++++++++++++++++++++++- guix/packages.scm | 12 ++++-- guix/scripts/refresh.scm | 83 +++++++++++++++++++++++++++------------- 4 files changed, 156 insertions(+), 30 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5bee540460..8431cbd907 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2545,6 +2545,31 @@ The command above specifically updates the @code{emacs} and @code{idutils} packages. The @code{--select} option would have no effect in this case. +When considering whether to upgrade a package, it is sometimes +convenient to know which packages would be affected by the upgrade and +should be checked for compatibility. For this the following option may +be used when passing @command{guix refresh} one or more package names: + +@table @code + +@item --list-dependent +@itemx -l +List top-level dependent packages that would need to be rebuilt as a +result of upgrading one or more packages. + +@end table + +Be aware that the @code{--list-dependent} option only +@emph{approximates} the rebuilds that would be required as a result of +an upgrade. More rebuilds might be required under some circumstances. + +@example +guix refresh --list-dependent flex +@end example + +The command above lists a set of packages that could be built to check +for compatibility with an upgraded @code{flex} package. + The following options can be used to customize GnuPG operation: @table @code diff --git a/gnu/packages.scm b/gnu/packages.scm index 8365a00051..77d9d3ee82 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Ludovic Courtès ;;; Copyright © 2013 Mark H Weaver +;;; Copyright © 2014 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,10 +32,16 @@ search-bootstrap-binary %patch-directory %bootstrap-binaries-path + fold-packages + find-packages-by-name find-best-packages-by-name - find-newest-available-packages)) + find-newest-available-packages + + package-direct-dependents + package-transitive-dependents + package-covering-dependents)) ;;; Commentary: ;;; @@ -182,3 +189,60 @@ VERSION." (match (vhash-assoc name (find-newest-available-packages)) ((_ version pkgs ...) pkgs) (#f '())))) + + +(define* (vhash-refq vhash key #:optional (dflt #f)) + "Look up KEY in the vhash VHASH, and return the value (if any) associated +with it. If KEY is not found, return DFLT (or `#f' if no DFLT argument is +supplied). Uses `eq?' for equality testing." + (or (and=> (vhash-assq key vhash) cdr) + dflt)) + +(define package-dependencies + (memoize + (lambda () + "Return a vhash keyed by package, and with associated values that are a +list of packages that depend on that package." + (fold-packages + (lambda (package dag) + (fold + (lambda (in d) + ;; Insert a graph edge from each of package's inputs to package. + (vhash-consq in + (cons package (vhash-refq d in '())) + (vhash-delq in d))) + dag + (match (package-direct-inputs package) + (((labels packages . _) ...) + packages) ))) + vlist-null)))) + +(define (package-direct-dependents packages) + "Return a list of packages from the distribution that directly depend on the +packages in PACKAGES." + (delete-duplicates + (concatenate + (map (lambda (p) + (vhash-refq (package-dependencies) p '())) + packages)))) + +(define (package-transitive-dependents packages) + "Return the transitive dependent packages of the distribution packages in +PACKAGES---i.e. the dependents of those packages, plus their dependents, +recursively." + (let ((dependency-dag (package-dependencies))) + (fold-tree + cons '() + (lambda (node) (vhash-refq dependency-dag node)) + ;; Start with the dependents to avoid including PACKAGES in the result. + (package-direct-dependents packages)))) + +(define (package-covering-dependents packages) + "Return a minimal list of packages from the distribution whose dependencies +include all of PACKAGES and all packages that depend on PACKAGES." + (let ((dependency-dag (package-dependencies))) + (fold-tree-leaves + cons '() + (lambda (node) (vhash-refq dependency-dag node)) + ;; Start with the dependents to avoid including PACKAGES in the result. + (package-direct-dependents packages)))) diff --git a/guix/packages.scm b/guix/packages.scm index 985a573fd3..5c3da9f2ff 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -75,6 +75,7 @@ package-location package-field-location + package-direct-inputs package-transitive-inputs package-transitive-target-inputs package-transitive-native-inputs @@ -484,12 +485,17 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET." ((input rest ...) (loop rest (cons input result)))))) +(define (package-direct-inputs package) + "Return all the direct inputs of PACKAGE---i.e, its direct inputs along +with their propagated inputs." + (append (package-native-inputs package) + (package-inputs package) + (package-propagated-inputs package))) + (define (package-transitive-inputs package) "Return the transitive inputs of PACKAGE---i.e., its direct inputs along with their propagated inputs, recursively." - (transitive-inputs (append (package-native-inputs package) - (package-inputs package) - (package-propagated-inputs package)))) + (transitive-inputs (package-direct-inputs package))) (define (package-transitive-target-inputs package) "Return the transitive target inputs of PACKAGE---i.e., its direct inputs diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index af7beb748b..17d75b33ca 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov +;;; Copyright © 2014 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module ((gnu packages base) #:select (%final-inputs)) #:use-module (ice-9 match) #:use-module (ice-9 regex) + #:use-module (ice-9 vlist) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) @@ -59,6 +61,9 @@ (x (leave (_ "~a: invalid selection; expected `core' or `non-core'") arg))))) + (option '(#\l "list-dependent") #f #f + (lambda (opt name arg result) + (alist-cons 'list-dependent? #t result))) (option '("key-server") #t #f (lambda (opt name arg result) @@ -96,6 +101,9 @@ specified with `--select'.\n")) (display (_ " -s, --select=SUBSET select all the packages in SUBSET, one of `core' or `non-core'")) + (display (_ " + -l, --list-dependent list top-level dependent packages that would need to + be rebuilt as a result of upgrading PACKAGE...")) (newline) (display (_ " --key-server=HOST use HOST as the OpenPGP key server")) @@ -193,9 +201,10 @@ update would trigger a complete rebuild." ;; XXX: Fails to catch MPFR/MPC, whose *source* is used as input. (member (package-name package) names)))) - (let* ((opts (parse-options)) - (update? (assoc-ref opts 'update?)) - (key-download (assoc-ref opts 'key-download)) + (let* ((opts (parse-options)) + (update? (assoc-ref opts 'update?)) + (list-dependent? (assoc-ref opts 'list-dependent?)) + (key-download (assoc-ref opts 'key-download)) (packages (match (concatenate (filter-map (match-lambda @@ -220,26 +229,48 @@ update would trigger a complete rebuild." (some ; user-specified packages some)))) (with-error-handling - (if update? - (let ((store (open-connection))) - (parameterize ((%openpgp-key-server - (or (assoc-ref opts 'key-server) - (%openpgp-key-server))) - (%gpg-command - (or (assoc-ref opts 'gpg-command) - (%gpg-command)))) - (for-each - (cut update-package store <> #:key-download key-download) - packages))) - (for-each (lambda (package) - (match (false-if-exception (package-update-path package)) - ((new-version . directory) - (let ((loc (or (package-field-location package 'version) - (package-location package)))) - (format (current-error-port) - (_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - new-version))) - (_ #f))) - packages))))) + (cond + (list-dependent? + (let* ((rebuilds (map package-full-name + (package-covering-dependents packages))) + (total-dependents + (length (package-transitive-dependents packages)))) + (if (= total-dependents 0) + (format (current-output-port) + (N_ "No dependents other than itself: ~{~a~}~%" + "No dependents other than themselves: ~{~a~^ ~}~%" + (length packages)) + (map package-full-name packages)) + (format (current-output-port) + (N_ (N_ "A single dependent package: ~2*~{~a~}~%" + "Building the following package would ensure ~d \ +dependent packages are rebuilt; ~*~{~a~^ ~}~%" + total-dependents) + "Building the following ~d packages would ensure ~d \ +dependent packages are rebuilt: ~{~a~^ ~}~%" + (length rebuilds)) + (length rebuilds) total-dependents rebuilds)))) + (update? + (let ((store (open-connection))) + (parameterize ((%openpgp-key-server + (or (assoc-ref opts 'key-server) + (%openpgp-key-server))) + (%gpg-command + (or (assoc-ref opts 'gpg-command) + (%gpg-command)))) + (for-each + (cut update-package store <> #:key-download key-download) + packages)))) + (else + (for-each (lambda (package) + (match (false-if-exception (package-update-path package)) + ((new-version . directory) + (let ((loc (or (package-field-location package 'version) + (package-location package)))) + (format (current-error-port) + (_ "~a: ~a would be upgraded from ~a to ~a~%") + (location->string loc) + (package-name package) (package-version package) + new-version))) + (_ #f))) + packages)))))) From a915ab6a6b726c57f5dd9460a3ce56dc7c82dab7 Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sun, 20 Jul 2014 11:56:59 -0700 Subject: [PATCH 05/75] gnu: sudo: Update to 1.8.10p3. * gnu/packages/admin.scm (sudo): Update to version 1.8.10p3. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6a5968509d..f542f0c87a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -617,7 +617,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.10p2") + (version "1.8.10p3") (source (origin (method url-fetch) (uri @@ -627,7 +627,7 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "1wbrygz584abmywklq0b4xhqn3s1bjk3rrladslr5nycdpdvhv5s")))) + "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-logpath=/var/log/sudo.log") From 7e81a45513306a6c49001f8963a7c6874fd738cf Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sun, 20 Jul 2014 11:59:09 -0700 Subject: [PATCH 06/75] gnu: wpa-supplicant: Update to 2.2. * gnu/packages/admin.scm (wpa-supplicant): Update to version 2.2. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f542f0c87a..f6232abafa 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -668,7 +668,7 @@ commands and their arguments.") (define-public wpa-supplicant (package (name "wpa-supplicant") - (version "2.1") + (version "2.2") (source (origin (method url-fetch) (uri (string-append @@ -677,7 +677,7 @@ commands and their arguments.") ".tar.gz")) (sha256 (base32 - "0xxjw7lslvql1ykfbwmbhdrnjsjljf59fbwf837418s97dz2wqwi")))) + "1vf8jc4yyksbxf86narvsli3vxfbm8nbnim2mdp66nd6d3yvin70")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace From fcbf703efa575d0b791325c4e219fd11b07ac6c6 Mon Sep 17 00:00:00 2001 From: Jason Self Date: Sun, 20 Jul 2014 13:37:02 -0700 Subject: [PATCH 07/75] gnu: ffmpeg: Remove --disable-vis. * gnu/packages/video.scm (ffmpeg): Remove --disable-vis. --- gnu/packages/video.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 075113ca9d..8850543c1d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -193,7 +193,6 @@ "--disable-armv6t2" "--disable-vfp" "--disable-neon" - "--disable-vis" "--disable-mips32r2" "--disable-mipsdspr1" "--disable-mipsdspr2" From 8334cf5b5c13d1afbc4ab746969deae1885d6550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 20 Jul 2014 14:25:08 +0200 Subject: [PATCH 08/75] guix system: Factorize 'copy-closure'. * guix/scripts/system.scm (copy-closure): Rename to... (copy-item): ... this. (copy-closure): New procedure. (install): Use it, and remove redundant code. --- guix/scripts/system.scm | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 66ad9192c1..57f42215ee 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -95,8 +95,8 @@ (store-lift show-what-to-build)) -(define* (copy-closure item target - #:key (log-port (current-error-port))) +(define* (copy-item item target + #:key (log-port (current-error-port))) "Copy ITEM to the store under root directory TARGET and register it." (mlet* %store-monad ((refs (references* item))) (let ((dest (string-append target item)) @@ -118,6 +118,18 @@ (return #t)))) +(define* (copy-closure item target + #:key (log-port (current-error-port))) + "Copy ITEM and all its dependencies to the store under root directory +TARGET, and register them." + (mlet* %store-monad ((refs (references* item)) + (to-copy (topologically-sorted* + (delete-duplicates (cons item refs) + string=?)))) + (sequence %store-monad + (map (cut copy-item <> target #:log-port log-port) + to-copy)))) + (define* (install os-drv target #:key (log-port (current-output-port)) grub? grub.cfg device) @@ -136,16 +148,10 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG." (mkdir-p (string-append target (%store-prefix))) ;; Copy items to the new store. - (sequence %store-monad - (map (cut copy-closure <> target #:log-port log-port) - to-copy)))))) + (copy-closure to-copy target #:log-port log-port))))) (mlet* %store-monad ((os-dir -> (derivation->output-path os-drv)) - (refs (references* os-dir)) - (lst -> (delete-duplicates (cons os-dir refs) - string=?)) - (to-copy (topologically-sorted* lst)) - (% (maybe-copy to-copy))) + (% (maybe-copy os-dir))) ;; Create a bunch of additional files. (format log-port "populating '~a'...~%" target) From 65ea71118902923a406cf9fbf50a6809f2b54694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 20 Jul 2014 22:02:20 +0200 Subject: [PATCH 09/75] guix refresh: Use (ice-9 format). * guix/scripts/refresh.scm: Use (ice-9 format). --- guix/scripts/refresh.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 17d75b33ca..a91ea69b1f 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014 Eric Bavier ;;; @@ -31,6 +31,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 vlist) + #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) From 7779ab611da79cced8fecc0b423577bf0836dc0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 20 Jul 2014 22:03:03 +0200 Subject: [PATCH 10/75] doc: Show output of 'guix refresh --list-dependent' example. * doc/guix.texi (Invoking guix refresh): Show example output of the command. --- doc/guix.texi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 8431cbd907..d30142fcbe 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2564,7 +2564,9 @@ Be aware that the @code{--list-dependent} option only an upgrade. More rebuilds might be required under some circumstances. @example -guix refresh --list-dependent flex +$ guix refresh --list-dependent flex +Building the following 120 packages would ensure 213 dependent packages are rebuilt: +hop-2.4.0 geiser-0.4 notmuch-0.18 mu-0.9.9.5 cflow-1.4 idutils-4.6 @dots{} @end example The command above lists a set of packages that could be built to check From 58f485cc803b978a048cdb4d9c472e48a662744c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 20 Jul 2014 22:32:34 +0200 Subject: [PATCH 11/75] build: Fix typo that would lead to hitting the socket name length limit. * tests/guix-register.sh: Remove redundant $new_store in $NIX_STATE_DIR, introduced in 689142cd ("guix-register: Add '--state-directory' parameter.") Reported by Eric Bavier and Alen Skondro . --- tests/guix-register.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/guix-register.sh b/tests/guix-register.sh index e258ec1244..3f261d7bef 100644 --- a/tests/guix-register.sh +++ b/tests/guix-register.sh @@ -86,7 +86,7 @@ guix-register -p "$new_store" \ # Now make sure this is recognized as valid. ls -R "$new_store" -for state_dir in "$new_store$localstatedir/guix" "$new_store/chbouib" +for state_dir in "$localstatedir/guix" "/chbouib" do NIX_STORE_DIR="$new_store_dir" NIX_STATE_DIR="$new_store$state_dir" From a4f51df98aaf849daf1a8302b6b7069c76a69ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 20 Jul 2014 22:38:07 +0200 Subject: [PATCH 12/75] nls: Add Hungarian translation. --- po/guix/LINGUAS | 1 + po/guix/hu.po | 1268 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1269 insertions(+) create mode 100644 po/guix/hu.po diff --git a/po/guix/LINGUAS b/po/guix/LINGUAS index 74504b6f07..6ba2fe22cc 100644 --- a/po/guix/LINGUAS +++ b/po/guix/LINGUAS @@ -4,6 +4,7 @@ de en@boldquot en@quot eo +hu pt_BR sr vi diff --git a/po/guix/hu.po b/po/guix/hu.po new file mode 100644 index 0000000000..5e3133fea0 --- /dev/null +++ b/po/guix/hu.po @@ -0,0 +1,1268 @@ +# Hungarian translation for guix. +# Copyright (C) 2014 Free Software Foundation, Inc. +# This file is distributed under the same license as the guix package. +# +# Balázs Úr , 2014. +msgid "" +msgstr "" +"Project-Id-Version: guix 0.7-pre1\n" +"Report-Msgid-Bugs-To: ludo@gnu.org\n" +"POT-Creation-Date: 2014-07-13 17:06+0200\n" +"PO-Revision-Date: 2014-07-18 17:37+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" + +#: gnu/packages.scm:95 +#, scheme-format +msgid "cannot access `~a': ~a~%" +msgstr "nem sikerült elérni: „~a”: ~a~%" + +#: guix/scripts/build.scm:54 guix/scripts/package.scm:349 +#, scheme-format +msgid "ambiguous package specification `~a'~%" +msgstr "nem egyértelmű csomag specifikáció: „~a”~%" + +#: guix/scripts/build.scm:55 guix/scripts/package.scm:351 +#, scheme-format +msgid "choosing ~a from ~a~%" +msgstr "~a választása innen: ~a~%" + +#: guix/scripts/build.scm:61 +#, scheme-format +msgid "~A: package not found for version ~a~%" +msgstr "~A: nem található csomag ehhez a verzióhoz: ~a~%" + +#: guix/scripts/build.scm:63 +#, scheme-format +msgid "~A: unknown package~%" +msgstr "~A: ismeretlen csomag~%" + +#: guix/scripts/build.scm:86 +#, scheme-format +msgid "failed to create GC root `~a': ~a~%" +msgstr "nem sikerült a GC gyökér létrehozása: „~a”: ~a~%" + +#: guix/scripts/build.scm:123 +msgid "" +"\n" +" -K, --keep-failed keep build tree of failed builds" +msgstr "" +"\n" +" -K, --keep-failed sikertelen összeállítások összeállítási fájának\n" +" megtartása" + +#: guix/scripts/build.scm:125 +msgid "" +"\n" +" -n, --dry-run do not build the derivations" +msgstr "" +"\n" +" -n, --dry-run ne állítsa össze a származékokat" + +#: guix/scripts/build.scm:127 +msgid "" +"\n" +" --fallback fall back to building when the substituter fails" +msgstr "" +"\n" +" --fallback térjen vissza az összeállításra, ha a helyettesítő\n" +" sikertelen" + +#: guix/scripts/build.scm:129 +msgid "" +"\n" +" --no-substitutes build instead of resorting to pre-built substitutes" +msgstr "" +"\n" +" --no-substitutes összeállítás az előre összeállított helyettesítők\n" +" felhasználása helyett" + +#: guix/scripts/build.scm:131 +msgid "" +"\n" +" --no-build-hook do not attempt to offload builds via the build hook" +msgstr "" +"\n" +" --no-build-hook ne próbáljon meg összeállításokat tehermentesíteni\n" +" az összeállítási hurkon keresztül" + +#: guix/scripts/build.scm:133 +msgid "" +"\n" +" --max-silent-time=SECONDS\n" +" mark the build as failed after SECONDS of silence" +msgstr "" +"\n" +" --max-silent-time=MÁSODPERC\n" +" az összeállítás sikertelennek jelölése MÁSODPERC\n" +" hallgatás után" + +#: guix/scripts/build.scm:136 +msgid "" +"\n" +" --timeout=SECONDS mark the build as failed after SECONDS of activity" +msgstr "" +"\n" +" --timeout=MÁSODPERC az összeállítás sikertelennek jelölése MÁSODPERC\n" +" aktivitás után" + +#: guix/scripts/build.scm:138 +msgid "" +"\n" +" --verbosity=LEVEL use the given verbosity LEVEL" +msgstr "" +"\n" +" --verbosity=SZINT a megadott bőbeszédűségi SZINT használata" + +#: guix/scripts/build.scm:140 +msgid "" +"\n" +" -c, --cores=N allow the use of up to N CPU cores for the build" +msgstr "" +"\n" +" -c, --cores=N legfeljebb N CPU-mag használatának engedélyezése\n" +" az összeállításhoz" + +#: guix/scripts/build.scm:206 +#, scheme-format +msgid "~a: not a number~%" +msgstr "~a: nem szám~%" + +#: guix/scripts/build.scm:223 +msgid "" +"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" +"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" +msgstr "" +"Használat: guix build [KAPCSOLÓ]… CSOMAG-VAGY-SZÁRMAZTATOTT…\n" +"A megadott CSOMAG-VAGY-SZÁRMAZTATOTT összeállítása, és a kimeneti elérési\n" +"útjaik visszaadása.\n" + +#: guix/scripts/build.scm:225 +msgid "" +"\n" +" -e, --expression=EXPR build the package or derivation EXPR evaluates to" +msgstr "" +"\n" +" -e, --expression=KIF a csomag vagy a kiértékelt származtatott KIF\n" +" összeállítása" + +#: guix/scripts/build.scm:227 +msgid "" +"\n" +" -S, --source build the packages' source derivations" +msgstr "" +"\n" +" -S, --source a csomagok forrásszármazékainak összeállítása" + +#: guix/scripts/build.scm:229 +msgid "" +"\n" +" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" +msgstr "" +"\n" +" -s, --system=RENDSZER kísérlet a RENDSZERRE történő összeállításra,\n" +" például „i686-linux”" + +#: guix/scripts/build.scm:231 +msgid "" +"\n" +" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" +msgstr "" +"\n" +" --target=HÁRMAS kereszt összeállítás a HÁRMASRA, például\n" +" „armel-linux-gnu”" + +#: guix/scripts/build.scm:233 +msgid "" +"\n" +" --with-source=SOURCE\n" +" use SOURCE when building the corresponding package" +msgstr "" +"\n" +" --with-source=FORRÁS\n" +" FORRÁS használata a megfelelő csomag összeállításakor" + +#: guix/scripts/build.scm:236 +msgid "" +"\n" +" -d, --derivations return the derivation paths of the given packages" +msgstr "" +"\n" +" -d, --derivations a megadott csomagok származék-útvonalának visszaadása" + +#: guix/scripts/build.scm:238 +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=FÁJL a FÁJL az eredmény egy szimbolikus linkje legyen,\n" +" és regisztrálja gyökér szemétgyűjtőként" + +#: guix/scripts/build.scm:241 +msgid "" +"\n" +" --log-file return the log file names for the given derivations" +msgstr "" +"\n" +" --log-file a megadott származékok naplófájl-neveinek visszaadása" + +#: guix/scripts/build.scm:246 guix/scripts/download.scm:53 +#: guix/scripts/package.scm:523 guix/scripts/gc.scm:58 +#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:334 +msgid "" +"\n" +" -h, --help display this help and exit" +msgstr "" +"\n" +" -h, --help ezen súgó megjelenítése és kilépés" + +#: guix/scripts/build.scm:248 guix/scripts/download.scm:55 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:60 +#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:336 +msgid "" +"\n" +" -V, --version display version information and exit" +msgstr "" +"\n" +" -V, --version verzióinformációk megjelenítése és kilépés" + +#: guix/scripts/build.scm:368 +#, scheme-format +msgid "sources do not match any package:~{ ~a~}~%" +msgstr "a források nem illeszkednek semmilyen csomagra:~{ ~a~}~%" + +#: guix/scripts/build.scm:397 guix/scripts/download.scm:96 +#: guix/scripts/package.scm:756 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:386 +#, scheme-format +msgid "~A: unrecognized option~%" +msgstr "~A: ismeretlen kapcsoló~%" + +#: guix/scripts/build.scm:425 +#, scheme-format +msgid "no build log for '~a'~%" +msgstr "nincs összeállítási napló ehhez: „~a”~%" + +#: guix/scripts/download.scm:44 +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" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16'\n" +"('hex' and 'hexadecimal' can be used as well).\n" +msgstr "" +"Használat: guix download [KAPCSOLÓ] URL\n" +"A fájl letöltése az URL-ről, hozzáadás a tárolóhoz, és a tárolója\n" +"útvonalának és a tartalma hash-ének kiírása.\n" +"\n" +"Támogatott formátumok: „nix-base32” (alapértelmezett), „base32” és „base16”\n" +"(„hex” és „hexadecimal” is használható).\n" + +#: guix/scripts/download.scm:50 guix/scripts/hash.scm:50 +msgid "" +"\n" +" -f, --format=FMT write the hash in the given format" +msgstr "" +"\n" +" -f, --format=FMT a hash kiírása a megadott formátumban" + +#: guix/scripts/download.scm:73 guix/scripts/hash.scm:75 +#, scheme-format +msgid "unsupported hash format: ~a~%" +msgstr "nem támogatott hash-formátum: ~a~%" + +#: guix/scripts/download.scm:106 +#, scheme-format +msgid "~a: failed to parse URI~%" +msgstr "~a: az URI feldolgozása sikertelen~%" + +#: guix/scripts/download.scm:117 +#, scheme-format +msgid "~a: download failed~%" +msgstr "~a: letöltés sikertelen~%" + +#: guix/scripts/package.scm:88 +#, scheme-format +msgid "failed to build the empty profile~%" +msgstr "az üres profil összeállítása sikertelen~%" + +#: guix/scripts/package.scm:97 +#, scheme-format +msgid "switching from generation ~a to ~a~%" +msgstr "átváltás a(z) ~a generációról erre: ~a~%" + +#: guix/scripts/package.scm:108 guix/scripts/package.scm:866 +#: guix/scripts/package.scm:978 +#, scheme-format +msgid "profile '~a' does not exist~%" +msgstr "a(z) „~a” profil nem létezik~%" + +#: guix/scripts/package.scm:112 +#, scheme-format +msgid "nothing to do: already at the empty profile~%" +msgstr "nincs mit tenni: már az üres profilnál van~%" + +#: guix/scripts/package.scm:197 +#, scheme-format +msgid "The following package would be removed:~%~{~a~%~}~%" +msgstr "A következő csomagot el kellene távolítani:~%~{~a~%~}~%" + +#: guix/scripts/package.scm:202 +#, scheme-format +msgid "The following package will be removed:~%~{~a~%~}~%" +msgstr "A következő csomag el lesz távolítva:~%~{~a~%~}~%" + +#: guix/scripts/package.scm:214 +#, scheme-format +msgid "The following package would be installed:~%~{~a~%~}~%" +msgstr "A következő csomagot telepíteni kellene:~%~{~a~%~}~%" + +#: guix/scripts/package.scm:219 +#, scheme-format +msgid "The following package will be installed:~%~{~a~%~}~%" +msgstr "A következő csomag telepítve lesz:~%~{~a~%~}~%" + +#: guix/scripts/package.scm:339 +#, scheme-format +msgid "package `~a' lacks output `~a'~%" +msgstr "a(z) „~a” csomag hiányolja a kimenetet: „~a”~%" + +#: guix/scripts/package.scm:356 +#, scheme-format +msgid "~a: package not found~%" +msgstr "~a: a csomag nem található~%" + +#: guix/scripts/package.scm:391 +#, scheme-format +msgid "looking for the latest release of GNU ~a..." +msgstr "a GNU ~a legutóbbi kiadásának keresése…" + +#: guix/scripts/package.scm:395 +#, scheme-format +msgid "~a: note: using ~a but ~a is available upstream~%" +msgstr "~a: megjegyzés: ~a használata, de ~a elérhető a tárolóban~%" + +#: guix/scripts/package.scm:467 +#, scheme-format +msgid "The following environment variable definitions may be needed:~%" +msgstr "A következő környezeti változó meghatározások lehetnek szükségesek:~%" + +#: guix/scripts/package.scm:483 +msgid "" +"Usage: guix package [OPTION]... PACKAGES...\n" +"Install, remove, or upgrade PACKAGES in a single transaction.\n" +msgstr "" +"Használat: guix package [KAPCSOLÓ]… CSOMAGOK…\n" +"CSOMAGOK telepítése, eltávolítása vagy frissítése egyetlen tranzakcióban.\n" + +#: guix/scripts/package.scm:485 +msgid "" +"\n" +" -i, --install=PACKAGE install PACKAGE" +msgstr "" +"\n" +" -i, --install=CSOMAG CSOMAG telepítése" + +#: guix/scripts/package.scm:487 +msgid "" +"\n" +" -e, --install-from-expression=EXP\n" +" install the package EXP evaluates to" +msgstr "" +"\n" +" -e, --install-from-expression=KIF\n" +" a kiértékelt KIF csomag telepítése" + +#: guix/scripts/package.scm:490 +msgid "" +"\n" +" -r, --remove=PACKAGE remove PACKAGE" +msgstr "" +"\n" +" -r, --remove=CSOMAG CSOMAG eltávolítása" + +#: guix/scripts/package.scm:492 +msgid "" +"\n" +" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" +msgstr "" +"\n" +" -u, --upgrade[=REGKIF] az összes REGKIF-re illeszkedő telepített csomag\n" +" frissítése" + +#: guix/scripts/package.scm:494 +msgid "" +"\n" +" --roll-back roll back to the previous generation" +msgstr "" +"\n" +" --roll-back visszagörgetés az előző generációra" + +#: guix/scripts/package.scm:496 +msgid "" +"\n" +" --search-paths display needed environment variable definitions" +msgstr "" +"\n" +" --search-paths a szükséges környezeti változó meghatározások\n" +" megjelenítése" + +#: guix/scripts/package.scm:498 +msgid "" +"\n" +" -l, --list-generations[=PATTERN]\n" +" list generations matching PATTERN" +msgstr "" +"\n" +" -l, --list-generations[=MINTA]\n" +" a MINTÁRA illeszkedő generációk listázása" + +#: guix/scripts/package.scm:501 +msgid "" +"\n" +" -d, --delete-generations[=PATTERN]\n" +" delete generations matching PATTERN" +msgstr "" +"\n" +" -d, --delete-generations[=MINTA]\n" +" a MINTÁRA illeszkedő generációk törlése" + +#: guix/scripts/package.scm:504 +msgid "" +"\n" +" -p, --profile=PROFILE use PROFILE instead of the user's default profile" +msgstr "" +"\n" +" -p, --profile=PROFIL a PROFIL használata a felhasználó alapértelmezett\n" +" profilja helyett" + +#: guix/scripts/package.scm:507 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the profile" +msgstr "" +"\n" +" --bootstrap a Guile rendszertöltő használata a profil\n" +" összeállításához" + +#: guix/scripts/package.scm:509 guix/scripts/pull.scm:75 +msgid "" +"\n" +" --verbose produce verbose output" +msgstr "" +"\n" +" --verbose bőbeszédű kimenet előállítása" + +#: guix/scripts/package.scm:512 +msgid "" +"\n" +" -s, --search=REGEXP search in synopsis and description using REGEXP" +msgstr "" +"\n" +" -s, --search=REGKIF keresés az összegzésben és a leírásban REGKIF\n" +" használatával" + +#: guix/scripts/package.scm:514 +msgid "" +"\n" +" -I, --list-installed[=REGEXP]\n" +" list installed packages matching REGEXP" +msgstr "" +"\n" +" -I, --list-installed[=REGKIF]\n" +" a REGKIF-re illeszkedő telepített csomagok listázása" + +#: guix/scripts/package.scm:517 +msgid "" +"\n" +" -A, --list-available[=REGEXP]\n" +" list available packages matching REGEXP" +msgstr "" +"\n" +" -A, --list-available[=REGKIF]\n" +" a REGKIF-re illeszkedő elérhető csomagok listázása" + +#: guix/scripts/package.scm:760 +#, scheme-format +msgid "~A: extraneous argument~%" +msgstr "~A: nem odatartozó argumentum~%" + +#: guix/scripts/package.scm:775 +#, scheme-format +msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" +msgstr "" +"További információkért próbálja az „info '(guix) Invoking guix package'”\n" +"parancsot.~%" + +#: guix/scripts/package.scm:797 +#, scheme-format +msgid "error: while creating directory `~a': ~a~%" +msgstr "hiba: a(z) „~a” könyvtár létrehozása közben: ~a~%" + +#: guix/scripts/package.scm:801 +#, scheme-format +msgid "Please create the `~a' directory, with you as the owner.~%" +msgstr "Hozza létre a(z) „~a” könyvtárat az ön nevében, tulajdonosként.~%" + +#: guix/scripts/package.scm:808 +#, scheme-format +msgid "error: directory `~a' is not owned by you~%" +msgstr "hiba: a(z) „~a” könyvtárnak nem ön a tulajdonosa~%" + +#: guix/scripts/package.scm:811 +#, scheme-format +msgid "Please change the owner of `~a' to user ~s.~%" +msgstr "Változtassa meg a(z) „~a” tulajdonosát erre a felhasználóra: ~s.~%" + +#: guix/scripts/package.scm:836 +#, scheme-format +msgid "deleting ~a~%" +msgstr "~a törlése~%" + +#: guix/scripts/package.scm:889 guix/scripts/package.scm:994 +#, scheme-format +msgid "invalid syntax: ~a~%" +msgstr "érvénytelen szintaxis: ~a~%" + +#: guix/scripts/package.scm:918 +#, scheme-format +msgid "nothing to be done~%" +msgstr "nincs mit tenni~%" + +#: guix/scripts/package.scm:941 +#, scheme-format +msgid "~a package in profile~%" +msgstr "~a csomag a profilban~%" + +#: guix/scripts/package.scm:956 +#, scheme-format +msgid "Generation ~a\t~a" +msgstr "~a generáció\t~a" + +#: guix/scripts/package.scm:963 +#, scheme-format +msgid "~a\t(current)~%" +msgstr "~a\t(jelenlegi)~%" + +#: guix/scripts/gc.scm:39 +msgid "" +"Usage: guix gc [OPTION]... PATHS...\n" +"Invoke the garbage collector.\n" +msgstr "" +"Használat: guix gc [KAPCSOLÓ]… ÚTVONALAK…\n" +"A szemétgyűjtő meghívása.\n" + +#: guix/scripts/gc.scm:41 +msgid "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" collect at least MIN bytes of garbage" +msgstr "" +"\n" +" -C, --collect-garbage[=MIN]\n" +" legalább MIN bájt szemét összegyűjtése" + +#: guix/scripts/gc.scm:44 +msgid "" +"\n" +" -d, --delete attempt to delete PATHS" +msgstr "" +"\n" +" -d, --delete ÚTVONALAK törlésének kísérlete" + +#: guix/scripts/gc.scm:46 +msgid "" +"\n" +" --list-dead list dead paths" +msgstr "" +"\n" +" --list-dead halott útvonalak listázása" + +#: guix/scripts/gc.scm:48 +msgid "" +"\n" +" --list-live list live paths" +msgstr "" +"\n" +" --list-live élő útvonalak listázása" + +#: guix/scripts/gc.scm:51 +msgid "" +"\n" +" --references list the references of PATHS" +msgstr "" +"\n" +" --references az ÚTVONALAK hivatkozásainak listázása" + +#: guix/scripts/gc.scm:53 +msgid "" +"\n" +" -R, --requisites list the requisites of PATHS" +msgstr "" +"\n" +" -R, --requisites az ÚTVONALAK követelményeinek listázása" + +#: guix/scripts/gc.scm:55 +msgid "" +"\n" +" --referrers list the referrers of PATHS" +msgstr "" +"\n" +" --referrers az ÚTVONALAK ajánlóinak listázása" + +#: guix/scripts/gc.scm:84 +#, scheme-format +msgid "invalid amount of storage: ~a~%" +msgstr "érvénytelen tárolómennyiség: ~a~%" + +#: guix/scripts/hash.scm:45 +msgid "" +"Usage: guix hash [OPTION] FILE\n" +"Return the cryptographic hash of FILE.\n" +"\n" +"Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'\n" +"and 'hexadecimal' can be used as well).\n" +msgstr "" +"Használat: guix hash [KAPCSOLÓ] FÁJL\n" +"A FÁJL kriptográfiai hash-ének visszaadása.\n" +"\n" +"Támogatott formátumok: „nix-base32” (alapértelmezett), „base32” és „base16”\n" +"(„hex” és „hexadecimal” is használható).\n" + +#: guix/scripts/hash.scm:52 +msgid "" +"\n" +" -r, --recursive compute the hash on FILE recursively" +msgstr "" +"\n" +" -r, --recursive a FILE hash-ének rekurzív számítása" + +#: guix/scripts/hash.scm:103 +#, scheme-format +msgid "unrecognized option: ~a~%" +msgstr "ismeretlen kapcsoló: ~a~%" + +#: guix/scripts/hash.scm:134 guix/ui.scm:233 +#, scheme-format +msgid "~a~%" +msgstr "~a~%" + +#: guix/scripts/hash.scm:137 +#, scheme-format +msgid "wrong number of arguments~%" +msgstr "nem megfelelő számú argumentum~%" + +#: guix/scripts/pull.scm:73 +msgid "" +"Usage: guix pull [OPTION]...\n" +"Download and deploy the latest version of Guix.\n" +msgstr "" +"Használat: guix pull [KAPCSOLÓ]…\n" +"A Guix legújabb verziójának letöltése és telepítése.\n" + +#: guix/scripts/pull.scm:77 +msgid "" +"\n" +" --url=URL download the Guix tarball from URL" +msgstr "" +"\n" +" --url=URL a Guix tarball letöltése az URL-ről" + +#: guix/scripts/pull.scm:79 +msgid "" +"\n" +" --bootstrap use the bootstrap Guile to build the new Guix" +msgstr "" +"\n" +" --bootstrap a Guile rendszertöltő használata az új Guix\n" +" összeállításához" + +#: guix/scripts/pull.scm:117 +#, scheme-format +msgid "~A: unexpected argument~%" +msgstr "~A: nem várt argumentum~%" + +#: guix/scripts/pull.scm:126 +msgid "failed to download up-to-date source, exiting\n" +msgstr "a legfrissebb forrás letöltése sikertelen, kilépés\n" + +#: guix/scripts/pull.scm:145 +#, scheme-format +msgid "updated ~a successfully deployed under `~a'~%" +msgstr "a(z) ~a frissítése sikeresen telepítve ez alá: „~a”~%" + +#: guix/scripts/pull.scm:148 +#, scheme-format +msgid "failed to update Guix, check the build log~%" +msgstr "a Guix frissítése sikertelen, nézze meg az összeállítási naplót~%" + +#: guix/scripts/pull.scm:150 +msgid "Guix already up to date\n" +msgstr "A Guix már naprakész\n" + +#: guix/scripts/substitute-binary.scm:80 +#, scheme-format +msgid "authentication and authorization of substitutes disabled!~%" +msgstr "a helyettesítők hitelesítése és felhatalmazása letiltva!~%" + +#: guix/scripts/substitute-binary.scm:163 +#, scheme-format +msgid "download from '~a' failed: ~a, ~s~%" +msgstr "a letöltés sikertelen innen: „~a”: ~a, ~s~%" + +#: guix/scripts/substitute-binary.scm:178 +#, scheme-format +msgid "while fetching ~a: server is unresponsive~%" +msgstr "~a lekérése közben: a kiszolgáló nem válaszol~%" + +#: guix/scripts/substitute-binary.scm:180 +#, scheme-format +msgid "try `--no-substitutes' if the problem persists~%" +msgstr "próbálja a „--no-substitutes” kapcsolót, ha a probléma továbbra is fennáll~%" + +#: guix/scripts/substitute-binary.scm:244 +#, scheme-format +msgid "signature version must be a number: ~a~%" +msgstr "az aláírás verziójának számnak kell lennie: ~a~%" + +#: guix/scripts/substitute-binary.scm:248 +#, scheme-format +msgid "unsupported signature version: ~a~%" +msgstr "nem támogatott aláírás verzió: ~a~%" + +#: guix/scripts/substitute-binary.scm:256 +#, scheme-format +msgid "signature is not a valid s-expression: ~s~%" +msgstr "az aláírás nem érvényes s-kifejezés: ~s~%" + +#: guix/scripts/substitute-binary.scm:260 +#, scheme-format +msgid "invalid format of the signature field: ~a~%" +msgstr "az aláírásmező formátuma érvénytelen: ~a~%" + +#: guix/scripts/substitute-binary.scm:295 +#, scheme-format +msgid "invalid signature for '~a'~%" +msgstr "érvénytelen aláírás ehhez: „~a”~%" + +#: guix/scripts/substitute-binary.scm:297 +#, scheme-format +msgid "hash mismatch for '~a'~%" +msgstr "hash eltérés ennél: „~a”~%" + +#: guix/scripts/substitute-binary.scm:299 +#, scheme-format +msgid "'~a' is signed with an unauthorized key~%" +msgstr "a(z) „~a” egy jogosulatlan kulccsal van aláírva~%" + +#: guix/scripts/substitute-binary.scm:301 +#, scheme-format +msgid "signature on '~a' is corrupt~%" +msgstr "a(z) „~a” aláírása sérült~%" + +#: guix/scripts/substitute-binary.scm:338 +#, scheme-format +msgid "substitute at '~a' lacks a signature~%" +msgstr "a helyettesítő ennél: „~a” hiányol egy aláírást~%" + +#: guix/scripts/substitute-binary.scm:526 +#, scheme-format +msgid "Downloading, please wait...~%" +msgstr "Letöltés, kérem várjon…~%" + +#: guix/scripts/substitute-binary.scm:528 +#, scheme-format +msgid "(Please consider upgrading Guile to get proper progress report.)~%" +msgstr "(Fontolja meg a Guile frissítését a megfelelő állapotjelentés beszerzéséhez.)~%" + +#: guix/scripts/substitute-binary.scm:545 +#, scheme-format +msgid "host name lookup error: ~a~%" +msgstr "gépnév keresési hiba: ~a~%" + +#: guix/scripts/substitute-binary.scm:554 +msgid "" +"Usage: guix substitute-binary [OPTION]...\n" +"Internal tool to substitute a pre-built binary to a local build.\n" +msgstr "" +"Használat: guix substitute-binary [KAPCSOLÓ]…\n" +"Belső eszköz egy előre összeállított binárisnak egy helyi összeállítással\n" +"való helyettesítéséhez.\n" + +#: guix/scripts/substitute-binary.scm:556 +msgid "" +"\n" +" --query report on the availability of substitutes for the\n" +" store file names passed on the standard input" +msgstr "" +"\n" +" --query a helyettesítők elérhetőségének jelentése a\n" +" szabványos bemeneten átadott tároló fájlnevekhez" + +#: guix/scripts/substitute-binary.scm:559 +msgid "" +"\n" +" --substitute STORE-FILE DESTINATION\n" +" download STORE-FILE and store it as a Nar in file\n" +" DESTINATION" +msgstr "" +"\n" +" --substitute TÁROLÓ-FÁJL CÉL\n" +" TÁROLÓ-FÁJL letöltése és eltárolása Nar formátumban\n" +" a CÉL fájlban" + +#: guix/scripts/substitute-binary.scm:604 +msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" +msgstr "" +"Az ACL előkészítetlennek tűnik az archívum importokhoz, a helyettesítők\n" +"elérhetetlenek lehetnek\n" + +#: guix/scripts/substitute-binary.scm:625 +#, scheme-format +msgid "failed to look up host '~a' (~a), substituter disabled~%" +msgstr "a(z) „~a” (~a) gép keresése sikertelen, a helyettesítő letiltva~%" + +#: guix/scripts/substitute-binary.scm:732 +#, scheme-format +msgid "~a: unrecognized options~%" +msgstr "~a: ismeretlen kapcsolók~%" + +#: guix/scripts/authenticate.scm:58 +#, scheme-format +msgid "cannot find public key for secret key '~a'~%" +msgstr "nem található nyilvános kulcs a(z) „~a” titkos kulcshoz~%" + +#: guix/scripts/authenticate.scm:78 +#, scheme-format +msgid "error: invalid signature: ~a~%" +msgstr "hiba: érvénytelen aláírás: ~a~%" + +#: guix/scripts/authenticate.scm:80 +#, scheme-format +msgid "error: unauthorized public key: ~a~%" +msgstr "hiba: jogosulatlan nyilvános kulcs: ~a~%" + +#: guix/scripts/authenticate.scm:82 +#, scheme-format +msgid "error: corrupt signature data: ~a~%" +msgstr "hiba: sérült aláírás adatok: ~a~%" + +#: guix/scripts/authenticate.scm:126 +msgid "" +"Usage: guix authenticate OPTION...\n" +"Sign or verify the signature on the given file. This tool is meant to\n" +"be used internally by 'guix-daemon'.\n" +msgstr "" +"Használat: guix authenticate KAPCSOLÓ…\n" +"Aláírás vagy a megadott fájl aláírásának ellenőrzése. Az eszköz célja, hogy\n" +"a „guix-daemon” belsőleg felhasználja.\n" + +#: guix/scripts/authenticate.scm:132 +msgid "wrong arguments" +msgstr "hibás argumentumok" + +#: guix/scripts/system.scm:74 +#, scheme-format +msgid "failed to open operating system file '~a': ~a~%" +msgstr "a(z) „~a” operációs rendszer fájl megnyitása sikertelen: ~a~%" + +#: guix/scripts/system.scm:78 guix/ui.scm:238 +#, scheme-format +msgid "~a: ~a~%" +msgstr "~a: ~a~%" + +#: guix/scripts/system.scm:81 +#, scheme-format +msgid "failed to load operating system file '~a': ~s~%" +msgstr "a(z) „~a” operációs rendszer fájl betöltése sikertelen: ~s~%" + +#: guix/scripts/system.scm:111 +#, scheme-format +msgid "failed to register '~a' under '~a'~%" +msgstr "a(z) „~a” regisztrálása sikertelen ez alá: „~a”~%" + +#: guix/scripts/system.scm:127 +#, scheme-format +msgid "initializing the current root file system~%" +msgstr "a jelenlegi gyökér fájlrendszer előkészítése~%" + +#: guix/scripts/system.scm:151 guix/scripts/system.scm:291 +#, scheme-format +msgid "failed to install GRUB on device '~a'~%" +msgstr "a GRUB telepítése sikertelen a(z) „~a” eszközre~%" + +#: guix/scripts/system.scm:176 +#, scheme-format +msgid "activating system...~%" +msgstr "a rendszer aktiválása…~%" + +#: guix/scripts/system.scm:211 +#, scheme-format +msgid "unrecognized boot parameters for '~a'~%" +msgstr "azonosítatlan indítási paraméterek ehhez: „~a”~%" + +#: guix/scripts/system.scm:295 +#, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "az operációs rendszer előkészítése „~a” alá…~%" + +#: guix/scripts/system.scm:311 +msgid "" +"Usage: guix system [OPTION] ACTION FILE\n" +"Build the operating system declared in FILE according to ACTION.\n" +msgstr "" +"Használat: guix system [KAPCSOLÓ] MŰVELET FÁJL\n" +"A FÁJLBAN meghatározott operációs rendszer összeállítása a MŰVELET szerint.\n" + +#: guix/scripts/system.scm:314 +msgid "The valid values for ACTION are:\n" +msgstr "A MŰVELET érvényes értékei a következők:\n" + +#: guix/scripts/system.scm:315 +msgid " - 'reconfigure', switch to a new operating system configuration\n" +msgstr " - „reconfigure”, átváltás egy új operációs rendszer beállításra\n" + +#: guix/scripts/system.scm:317 +msgid " - 'build', build the operating system without installing anything\n" +msgstr " - „build”, az operációs rendszer összeállítása bármi telepítése nélkül\n" + +#: guix/scripts/system.scm:319 +msgid " - 'vm', build a virtual machine image that shares the host's store\n" +msgstr "" +" - „vm”, egy virtuális gép lemezkép összeállítása, amely megosztja a gazda\n" +" tárolóját\n" + +#: guix/scripts/system.scm:321 +msgid " - 'vm-image', build a freestanding virtual machine image\n" +msgstr " - „vm-image”, egy szabadon álló virtuális gép lemezkép összeállítása\n" + +#: guix/scripts/system.scm:323 +msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" +msgstr " - „disk-image”, egy USB-meghajtóhoz megfelelő lemezkép összeállítása\n" + +#: guix/scripts/system.scm:325 +msgid " - 'init', initialize a root file system to run GNU.\n" +msgstr " - „init”, a gyökér fájlrendszer előkészítése a GNU futtatásához.\n" + +#: guix/scripts/system.scm:329 +msgid "" +"\n" +" --image-size=SIZE for 'vm-image', produce an image of SIZE" +msgstr "" +"\n" +" --image-size=MÉRET a „vm-image”-hez, adott MÉRETŰ lemezkép előállítása" + +#: guix/scripts/system.scm:331 +msgid "" +"\n" +" --no-grub for 'init', do not install GRUB" +msgstr "" +"\n" +" --no-grub az „init”-hez, ne telepítse a GRUB rendszerbetöltőt" + +#: guix/scripts/system.scm:394 +#, scheme-format +msgid "~a: unknown action~%" +msgstr "~a: ismeretlen művelet~%" + +#: guix/scripts/system.scm:411 +#, scheme-format +msgid "wrong number of arguments for action '~a'~%" +msgstr "nem megfelelő számú argumentum a(z) „~a” művelethez~%" + +#: guix/scripts/system.scm:431 +#, scheme-format +msgid "no configuration file specified~%" +msgstr "nincs beállítófájl megadva~%" + +#: guix/gnu-maintenance.scm:373 +#, scheme-format +msgid "signature verification failed for `~a'~%" +msgstr "az aláírás-ellenőrzés sikertelen ennél: „~a”~%" + +#: guix/gnu-maintenance.scm:375 +#, scheme-format +msgid "(could be because the public key is not in your keyring)~%" +msgstr "(azért lehet, mert a nyilvános kulcs nincs a kulcstartón)~%" + +#: guix/gnu-maintenance.scm:450 +#, scheme-format +msgid "~a: could not locate source file" +msgstr "~a: nem található a forrásfájl" + +#: guix/gnu-maintenance.scm:455 +#, scheme-format +msgid "~a: ~a: no `version' field in source; skipping~%" +msgstr "~a: ~a: nincs „version” mező a forrásban; kihagyás~%" + +#: guix/ui.scm:131 +#, scheme-format +msgid "failed to install locale: ~a~%" +msgstr "a területi beállítás telepítése sikertelen: ~a~%" + +#: guix/ui.scm:150 +msgid "" +"Copyright (C) 2014 the Guix authors\n" +"License GPLv3+: GNU GPL version 3 or later \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 © 2014 a Guix szerzői\n" +"Licenc GPLv3+: GNU GPL 3. vagy újabb verzió \n" +"\n" +"Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n" +"NINCS GARANCIA, a törvény által engedélyezett mértékig.\n" + +#: guix/ui.scm:158 +#, scheme-format +msgid "" +"\n" +"Report bugs to: ~a." +msgstr "" +"\n" +"A hibákat ide jelentse: ~a." + +#: guix/ui.scm:160 +#, scheme-format +msgid "" +"\n" +"~a home page: <~a>" +msgstr "" +"\n" +"~a honlap: <~a>" + +#: guix/ui.scm:162 +msgid "" +"\n" +"General help using GNU software: " +msgstr "" +"\n" +"Általános segítség a GNU szoftverek használatához: " + +#: guix/ui.scm:169 +#, scheme-format +msgid "~a: invalid number~%" +msgstr "~a: érvénytelen szám~%" + +#: guix/ui.scm:186 +#, scheme-format +msgid "invalid number: ~a~%" +msgstr "érvénytelen szám: ~a~%" + +#: guix/ui.scm:201 +#, scheme-format +msgid "unknown unit: ~a~%" +msgstr "ismeretlen egység: ~a~%" + +#: guix/ui.scm:212 +#, scheme-format +msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" +msgstr "~a:~a:~a: a(z) „~a” csomagnak érvénytelen bemenete van: ~s~%" + +#: guix/ui.scm:219 +#, scheme-format +msgid "~a: ~a: build system `~a' does not support cross builds~%" +msgstr "~a: ~a: a(z) „~a” összeállítási rendszer nem támogatja a kereszt összeállításokat~%" + +#: guix/ui.scm:224 +#, scheme-format +msgid "failed to connect to `~a': ~a~%" +msgstr "sikertelen csatlakozás ehhez: „~a”: ~a~%" + +#: guix/ui.scm:229 +#, scheme-format +msgid "build failed: ~a~%" +msgstr "az összeállítás sikertelen: ~a~%" + +#: guix/ui.scm:257 +#, scheme-format +msgid "failed to read expression ~s: ~s~%" +msgstr "a(z) ~s kifejezés olvasása sikertelen: ~s~%" + +#: guix/ui.scm:263 +#, scheme-format +msgid "failed to evaluate expression `~a': ~s~%" +msgstr "a(z) „~a” kifejezés kiértékelése sikertelen: ~s~%" + +#: guix/ui.scm:272 +#, scheme-format +msgid "expression ~s does not evaluate to a package~%" +msgstr "a(z) ~s kifejezés nem értékelhető ki a csomaghoz~%" + +#: guix/ui.scm:319 +#, scheme-format +msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" +msgstr "~:[A következő származékot kellene összeállítani:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:324 +#, scheme-format +msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[A következő fájlt kellene letölteni:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:330 +#, scheme-format +msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" +msgstr "~:[A következő származék lesz összeállítva:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:335 +#, scheme-format +msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" +msgstr "~:[A következő fájl lesz letöltve:~%~{ ~a~%~}~;~]" + +#: guix/ui.scm:352 +msgid "" +msgstr "" + +#: guix/ui.scm:380 +#, scheme-format +msgid "failed to create configuration directory `~a': ~a~%" +msgstr "a(z) „~a” beállítási könyvtár létrehozása sikertelen: ~a~%" + +#: guix/ui.scm:461 guix/ui.scm:475 +msgid "unknown" +msgstr "ismeretlen" + +#: guix/ui.scm:584 +#, scheme-format +msgid "invalid argument: ~a~%" +msgstr "érvénytelen argumentum: ~a~%" + +#: guix/ui.scm:589 +#, scheme-format +msgid "Try `guix --help' for more information.~%" +msgstr "További információkért próbálja a „guix --help” parancsot.~%" + +#: guix/ui.scm:619 +msgid "" +"Usage: guix COMMAND ARGS...\n" +"Run COMMAND with ARGS.\n" +msgstr "" +"Használat: guix PARANCS ARGUMENTUMOK…\n" +"A PARANCS futtatása ARGUMENTUMOKKAL.\n" + +#: guix/ui.scm:622 +msgid "COMMAND must be one of the sub-commands listed below:\n" +msgstr "A PARANCSNAK a lenti listában lévő alparancsok egyikének kell lennie:\n" + +#: guix/ui.scm:642 +#, scheme-format +msgid "guix: ~a: command not found~%" +msgstr "guix: ~a: a parancs nem található~%" + +#: guix/ui.scm:660 +#, scheme-format +msgid "guix: missing command name~%" +msgstr "guix: hiányzó parancsnév~%" + +#: guix/ui.scm:668 +#, scheme-format +msgid "guix: unrecognized option '~a'~%" +msgstr "guix: ismeretlen kapcsoló: „~a”~%" + +#: guix/http-client.scm:217 +#, scheme-format +msgid "using Guile ~a, which does not support ~s encoding~%" +msgstr "a Guile ~a használata, amely nem támogatja a(z) ~s kódolást~%" + +#: guix/http-client.scm:220 +#, scheme-format +msgid "download failed; use a newer Guile~%" +msgstr "letöltés sikertelen; használja a Guile újabb verzióját~%" + +#: guix/http-client.scm:232 +#, scheme-format +msgid "following redirection to `~a'...~%" +msgstr "átirányítás követése ide: „~a”…~%" + +#: guix/http-client.scm:241 +msgid "download failed" +msgstr "letöltés sikertelen" + +#: guix/nar.scm:134 +msgid "unexpected executable file marker" +msgstr "nem várt végrehajtható fájljelölő" + +#: guix/nar.scm:141 +msgid "unsupported nar file type" +msgstr "nem támogatott nar fájltípus" + +#: guix/nar.scm:209 +msgid "unsupported file type" +msgstr "nem támogatott fájltípus" + +#: guix/nar.scm:219 +msgid "invalid nar signature" +msgstr "érvénytelen nar aláírás" + +#: guix/nar.scm:230 +msgid "invalid nar end-of-file marker" +msgstr "érvénytelen nar fájlvége jelölő" + +#: guix/nar.scm:244 +msgid "invalid symlink tokens" +msgstr "érvénytelen szimbolikus link jelsorok" + +#: guix/nar.scm:263 +msgid "unexpected directory entry termination" +msgstr "nem várt könyvtárbejegyzés végződés" + +#: guix/nar.scm:272 +msgid "unexpected directory inter-entry marker" +msgstr "nem várt könyvtár belső-bejegyzés jelölő" + +#: guix/nar.scm:277 +msgid "unsupported nar entry type" +msgstr "nem támogatott nar bejegyzéstípus" + +#: guix/nar.scm:376 +msgid "signature is not a valid s-expression" +msgstr "az aláírás nem érvényes s-kifejezés" + +#: guix/nar.scm:385 +msgid "invalid signature" +msgstr "érvénytelen aláírás" + +#: guix/nar.scm:389 +msgid "invalid hash" +msgstr "érvénytelen hash" + +#: guix/nar.scm:397 +msgid "unauthorized public key" +msgstr "jogosulatlan nyilvános kulcs" + +#: guix/nar.scm:402 +msgid "corrupt signature data" +msgstr "sérült aláírás adatok" + +#: guix/nar.scm:422 +msgid "corrupt file set archive" +msgstr "sérült fájlhalmaz archívum" + +#: guix/nar.scm:432 +#, scheme-format +msgid "importing file or directory '~a'...~%" +msgstr "fájl vagy könyvtár importálása: „~a”…~%" + +#: guix/nar.scm:441 +#, scheme-format +msgid "found valid signature for '~a'~%" +msgstr "érvényes aláírás található ehhez: „~a”~%" + +#: guix/nar.scm:448 +msgid "imported file lacks a signature" +msgstr "az importált fájl egy aláírást hiányol" + +#: guix/nar.scm:487 +msgid "invalid inter-file archive mark" +msgstr "érvénytelen belső-fájl archívum jelölő" From 9c0fc27968c2359c49c324c5f89b38436aa2eb49 Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Wed, 16 Jul 2014 15:38:34 +0200 Subject: [PATCH 13/75] ui: add the "dependencies" field to package->recutils: * guix/ui.scm (package->recutils): Print the dependencies of the package. --- guix/ui.scm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index 7338b82401..74ea20e6c8 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -453,9 +453,17 @@ WIDTH columns." (fill-paragraph str width (string-length "description: "))))) + (define (package (package-location p) location->string) (_ "unknown"))) From 2aa6efb0b9952595853c05294450b4254f64521e Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Thu, 17 Jul 2014 02:36:09 +0200 Subject: [PATCH 14/75] guix package: add a "show" option. * doc/guix.texi: Update the documentation. * guix/scripts/package.scm: Add a "show" option. * tests/guix-package.sh: Add a test for the "show" option. --- doc/guix.texi | 24 ++++++++++++++++++++++++ guix/scripts/package.scm | 15 +++++++++++++++ tests/guix-package.sh | 3 +++ 3 files changed, 42 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index d30142fcbe..ab9a533047 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -844,6 +844,30 @@ name: gmp @dots{} @end example +@item --show=@var{package} +Show details about @var{package}, taken from the list of available packages, in +@code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, GNU +recutils manual}). + +@example +$ guix package --show=python | recsel -p name,version +name: python +version: 2.7.6 + +name: python +version: 3.3.5 +@end example + +You may also specify the full name of a package to only get details about a +specific version of it: +@example +$ guix package --show=python-3.3.5 | recsel -p name,version +name: python +version: 3.3.5 +@end example + + + @item --list-installed[=@var{regexp}] @itemx -I [@var{regexp}] List the currently installed packages in the specified profile, with the diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 1c3209f905..0d17414b4f 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -517,6 +517,8 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n")) (display (_ " -A, --list-available[=REGEXP] list available packages matching REGEXP")) + (display (_ " + --show=PACKAGE show details about PACKAGE")) (newline) (show-build-options-help) (newline) @@ -615,6 +617,11 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n")) (values (cons `(query list-available ,(or arg "")) result) #f))) + (option '("show") #t #t + (lambda (opt name arg result arg-handler) + (values (cons `(query show ,arg) + result) + #f))) %standard-build-options)) @@ -1042,6 +1049,14 @@ more information.~%")) (find-packages-by-description regexp))) #t)) + (('show requested-name) + (let-values (((name version) + (package-name->name+version requested-name))) + (leave-on-EPIPE + (for-each (cute package->recutils <> (current-output-port)) + (find-packages-by-name name version))) + #t)) + (('search-paths) (let* ((manifest (profile-manifest profile)) (entries (manifest-entries manifest)) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 4d75955411..6b99275240 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -176,6 +176,9 @@ then false; else true; fi # Check whether `--list-available' returns something sensible. guix package -p "$profile" -A 'gui.*e' | grep guile +# Check whether `--show' returns something sensible. +guix package --show=guile | grep "^Package: guile" + # There's no generation older than 12 months, so the following command should # have no effect. generation="`readlink_base "$profile"`" From 02dd2a9cb6ca33619a29f1ded4cde6a29574045b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 21 Jul 2014 16:01:51 +0200 Subject: [PATCH 15/75] Update 'NEWS'. --- NEWS | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/NEWS b/NEWS index 2001ec12fe..4dcffdd425 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,75 @@ Copyright © 2013, 2014 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.7 (since 0.6) +** Package management +*** ‘guix refresh’ has a new ‘--list-dependent’ options + +See “Invoking guix refresh” in the manual. + +** Programming interfaces +*** New (guix gexp) module, which implements “G-expressions” + +G-expressions are a new mechanism to embed build-side code in host-side +code. See “G-Expressions” in the manual. + +*** (gnu system) and related modules now use G-expressions + +This greatly simplifies code, and guarantees that build code carries +references to the packages or derivations it uses. + +*** ‘build-expression->derivation’ is deprecated in favor of G-expressions +*** The (gnu system) module has been largely augmented and factorized +*** New (guix build vm) module, support for virtual machine images +*** New (guix build activation) module, for “system activation” +*** New (guix build syscalls) module +*** New (guix build install) and module for whole system installation +*** New (gnu system install) module, for the installation system +*** New (gnu system file-systems) module, for ‘file-system’ declarations +*** New (gnu) module, which aggregates common (gnu …) modules +*** ‘service’ records now have an optional ‘activate’ field + +This allows services to specify code to run at system activation time. + +** GNU distribution +*** An image to install the GNU system from a USB stick is provided + +This is the first time an installation image is provided. See “System +Installation” in the manual for details. This is work in progress as noted +in “Limitations”. Your feedback and help are welcome! + +*** Support for more parameters in ‘operating-system’ declarations + +Operating system declarations can now provide a list of file systems, a list +of setuid programs, bootloader options, and more. See “System Configuration” +in the manual. + +*** ‘guix system’ supports more actions + +Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’. +See “Invoking guix system” in the manual. + +*** User accounts and groups are created at system activation time +*** Virtual machine support uses para-virtualized devices +*** GCC package now has an additional ‘lib’ output, for run-time support libs +*** GLib package now has a separate “bin” output () +*** XXX new packages +*** XXX package updates + +** Native language support +*** New translations: de (German), and hu (Hungarian) +*** Updated translations: eo, pt_BR, sr, vi +*** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’ +** Bugs fixed +*** Downloads are now faster () +*** ‘guix authenticate’ properly writes signatures to stdout + () +*** Progress report of downloads is now properly displayed +*** Error reporting of pk-crypto errors has been improved +*** The 'patches' field now works for origins with no extension +*** Synchronization and GC issues fixed in the offload hook +*** (guix ftp-client) emits USER commands suitable for all servers + * Changes in 0.6 (since 0.5) ** Package management *** Default store directory changed to /gnu/store From 1b09031f786238b21ab10ba4c3e384ab194735df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 21 Jul 2014 21:07:00 +0200 Subject: [PATCH 16/75] services: Allow 'check-file-system' to work for non-boot-time file systems. * gnu/services/base.scm (file-system-service)[start]: Set $PATH so that fsck.* can be found. Reported by "DusXMT". --- gnu/services/base.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 55ee5c4b08..ae12c8e93d 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -25,7 +25,7 @@ #:use-module (gnu system linux) ; 'pam-service', etc. #:use-module (gnu packages admin) #:use-module ((gnu packages linux) - #:select (udev kbd)) + #:select (udev kbd e2fsprogs)) #:use-module ((gnu packages base) #:select (glibc-final)) #:use-module (gnu packages package-management) @@ -110,7 +110,14 @@ true, check the file system before mounting it." (start #~(lambda args (let ((device (canonicalize-device-spec #$device '#$title))) #$(if check? - #~(check-file-system device #$type) + #~(begin + ;; Make sure fsck.ext2 & co. can be found. + (setenv "PATH" + (string-append + #$e2fsprogs "/sbin:" + "/run/current-system/profile/sbin:" + (getenv "PATH"))) + (check-file-system device #$type)) #~#t) (mount device #$target #$type 0 #$options)) #t)) From bce7526f9a7d4e26242d3128157e30c2fa7ecb0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 21 Jul 2014 22:06:36 +0200 Subject: [PATCH 17/75] Add comments about global memoization. * guix/build-system/gnu.scm (standard-inputs): Add comment about misplaced memoization. * guix/packages.scm (cache): Likewise. --- guix/build-system/gnu.scm | 3 +++ guix/packages.scm | 2 ++ 2 files changed, 5 insertions(+) diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 4fa1d1683d..b2b184db34 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -250,6 +250,9 @@ derivations for SYSTEM. Include propagated inputs in the result." inputs)))) (define standard-inputs + ;; FIXME: Memoization should be associated with the open store (as for + ;; 'add-text-to-store'), otherwise we get .drv that may not be valid when + ;; switching to another store. (memoize (lambda (system) "Return the list of implicit standard inputs used with the GNU Build diff --git a/guix/packages.scm b/guix/packages.scm index 5c3da9f2ff..1939373f35 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -527,6 +527,8 @@ recursively." (define (cache package system thunk) "Memoize the return values of THUNK as the derivation of PACKAGE on SYSTEM." + ;; FIXME: This memoization should be associated with the open store, because + ;; otherwise it breaks when switching to a different store. (let ((vals (call-with-values thunk list))) ;; Use `hashq-set!' instead of `hash-set!' because `hash' returns the ;; same value for all structs (as of Guile 2.0.6), and because pointer From 7cb9666dd05ba4f039a151c5189a533139f26109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 15:23:14 +0200 Subject: [PATCH 18/75] doc: Fix typo. * doc/guix.texi (System Installation): s/are/is/. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index ab9a533047..fb6f897bb2 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2709,7 +2709,7 @@ GNOME and KDE. @item Support for encrypted disks, the Logical Volume Manager (LVM), and swap -devices are missing. +devices is missing. @item Few system services are currently supported out-of-the-box From a69576ea858863574252cbefbcef91db98773d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 16:57:57 +0200 Subject: [PATCH 19/75] system: Add '%devtmpfs-file-system' for udev, and '%base-file-systems'. Suggested by Adam Pribyl . * gnu/services/base.scm (udev-service)[requirement]: Add 'file-system-/dev'. * gnu/system/file-systems.scm (%devtmpfs-file-system, %base-file-systems): New variables. * gnu/system/install.scm (installation-services)[file-systems]: Use %base-file-systems. * build-aux/hydra/demo-os.scm (file-systems): Likewise. * doc/guix.texi (System Installation): Show %BASE-FILE-SYSTEMS in the example. (Using the Configuration System): Likewise. (File Systems): Document %base-file-systems, %devtmpfs-file-system, %binary-format-file-system, and %fuse-control-file-system. --- build-aux/hydra/demo-os.scm | 14 +++++++------- doc/guix.texi | 37 +++++++++++++++++++++++++++++++++---- gnu/services/base.scm | 9 +++++++-- gnu/system/file-systems.scm | 18 +++++++++++++++++- gnu/system/install.scm | 5 +++-- 5 files changed, 67 insertions(+), 16 deletions(-) diff --git a/build-aux/hydra/demo-os.scm b/build-aux/hydra/demo-os.scm index 89b67aabe3..9164500d70 100644 --- a/build-aux/hydra/demo-os.scm +++ b/build-aux/hydra/demo-os.scm @@ -44,13 +44,13 @@ (file-systems ;; We provide a dummy file system for /, but that's OK because the VM build ;; code will automatically declare the / file system for us. - (list (file-system - (mount-point "/") - (device "dummy") - (type "dummy")) - ;; %fuse-control-file-system ; needs fuse.ko - ;; %binary-format-file-system ; needs binfmt.ko - )) + (cons* (file-system + (mount-point "/") + (device "dummy") + (type "dummy")) + ;; %fuse-control-file-system ; needs fuse.ko + ;; %binary-format-file-system ; needs binfmt.ko + %base-file-systems)) (users (list (user-account (name "guest") diff --git a/doc/guix.texi b/doc/guix.texi index fb6f897bb2..2b05a75be4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2826,10 +2826,11 @@ only a root account would look like this: ;; Assuming /dev/sdX is the target hard disk, and /dev/sdX1 the ;; target root file system. (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems (list (file-system + (file-systems (cons (file-system (device "/dev/sdX1") (mount-point "/") - (type "ext4"))))) + (type "ext4")) + %base-file-systems))) @end example @noindent @@ -2925,10 +2926,11 @@ kernel, initial RAM disk, and boot loader looks like this: (locale "fr_FR.UTF-8") (bootloader (grub-configuration (device "/dev/sda"))) - (file-systems (list (file-system + (file-systems (cons (file-system (device "/dev/sda1") ; or partition label (mount-point "/") - (type "ext3")))) + (type "ext3")) + %base-file-systems)) (users (list (user-account (name "alice") (password "") @@ -3055,6 +3057,32 @@ errors before being mounted. @end table @end deftp +The @code{(gnu system file-systems)} exports the following useful +variables. + +@defvr {Scheme Variable} %base-file-systems +These are essential file systems that are required on normal systems, +such as @var{%devtmpfs-file-system} (see below.) Operating system +declarations should always contain at least these. +@end defvr + +@defvr {Scheme Variable} %devtmpfs-file-system +The @code{devtmpfs} file system to be mounted on @file{/dev}. This is a +requirement for udev (@pxref{Base Services, @code{udev-service}}). +@end defvr + +@defvr {Scheme Variable} %binary-format-file-system +The @code{binfmt_misc} file system, which allows handling of arbitrary +executable file types to be delegated to user space. This requires the +@code{binfmt.ko} kernel module to be loaded. +@end defvr + +@defvr {Scheme Variable} %fuse-control-file-system +The @code{fusectl} file system, which allows unprivileged users to mount +and unmount user-space FUSE file systems. This requires the +@code{fuse.ko} kernel module to be loaded. +@end defvr + @node User Accounts @subsection User Accounts @@ -3245,6 +3273,7 @@ passed to @command{guix-daemon}. Run @var{udev}, which populates the @file{/dev} directory dynamically. @end deffn + @node Networking Services @subsubsection Networking Services diff --git a/gnu/services/base.scm b/gnu/services/base.scm index ae12c8e93d..42e232c9ac 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -473,8 +473,13 @@ passed to @command{guix-daemon}." (with-monad %store-monad (return (service (provision '(udev)) - (requirement '(root-file-system)) - (documentation "Populate the /dev directory.") + + ;; Udev needs /dev to be a 'devtmpfs' mount so that new device + ;; nodes can be added: see + ;; . + (requirement '(root-file-system file-system-/dev)) + + (documentation "Populate the /dev directory, dynamically.") (start #~(lambda () (define udevd (string-append #$udev "/libexec/udev/udevd")) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 7852a6ab26..0c2021d7b4 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -30,7 +30,10 @@ file-system-options %fuse-control-file-system - %binary-format-file-system)) + %binary-format-file-system + %devtmpfs-file-system + + %base-file-systems)) ;;; Commentary: ;;; @@ -72,4 +75,17 @@ (type "binfmt_misc") (check? #f))) +(define %devtmpfs-file-system + ;; /dev as a 'devtmpfs' file system, needed for udev. + (file-system + (device "none") + (mount-point "/dev") + (type "devtmpfs") + (check? #f))) + +(define %base-file-systems + ;; List of basic file systems to be mounted. Note that /proc and /sys are + ;; currently mounted by the initrd. + (list %devtmpfs-file-system)) + ;;; file-systems.scm ends here diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 18fd587ead..d4a32609ba 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -117,10 +117,11 @@ Use Alt-F2 for documentation. (file-systems ;; Note: the disk image build code overrides this root file system with ;; the appropriate one. - (list (file-system + (cons (file-system (mount-point "/") (device "gnu-disk-image") - (type "ext4")))) + (type "ext4")) + %base-file-systems)) (users (list (user-account (name "guest") From 30d3e2e8dbdc40d6ac14de15fd0e3c5c2ba087d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 16:09:16 +0200 Subject: [PATCH 20/75] Thank Adam. --- THANKS | 1 + 1 file changed, 1 insertion(+) diff --git a/THANKS b/THANKS index cb3c32c2ac..4070eea3d1 100644 --- a/THANKS +++ b/THANKS @@ -23,6 +23,7 @@ infrastructure help: Matthew Lien Niels Möller Yutaka Niibe + Adam Pribyl Cyrill Schenkel Benno Schulenberg Jason Self From 5ac12a4f778f1cce8aff10fe3ef30be1a85e4647 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 22 Jul 2014 21:35:07 +0200 Subject: [PATCH 21/75] Require only lower gettext version. * configure.ac: Change back to requiring gettext at least 0.18.1, partially reverting commit ee76417. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index eb038db253..e9fd1699b7 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ dnl For the C++ code. This must be used early. AC_USE_SYSTEM_EXTENSIONS AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.18.3]) +AM_GNU_GETTEXT_VERSION([0.18.1]) guilemoduledir="${datarootdir}/guile/site/2.0" AC_SUBST([guilemoduledir]) From 4e469051a77d02435eafb1df93224a2ce1bb3146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 22:53:36 +0200 Subject: [PATCH 22/75] system: Add 'create-mount-point?' file system option. * gnu/system/file-systems.scm ()[create-mount-point?]: New field. * gnu/services/base.scm (file-system-service): Add #:create-mount-point? parameter and honor it. * gnu/system.scm (other-file-system-services): Update 'file-system-service' call accordingly. * doc/guix.texi (File Systems): Document it. --- doc/guix.texi | 3 +++ gnu/services/base.scm | 9 +++++++-- gnu/system.scm | 3 ++- gnu/system/file-systems.scm | 6 +++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2b05a75be4..a88b546380 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3054,6 +3054,9 @@ instance, for the root file system. This Boolean indicates whether the file system needs to be checked for errors before being mounted. +@item @code{create-mount-point?} (default: @code{#f}) +When true, the mount point is created if it does not exist yet. + @end table @end deftp diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 42e232c9ac..9a67109db0 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -96,11 +96,13 @@ This service must be the root of the service dependency graph so that its (respawn? #f))))) (define* (file-system-service device target type - #:key (check? #t) options (title 'any)) + #:key (check? #t) create-mount-point? + options (title 'any)) "Return a service that mounts DEVICE on TARGET as a file system TYPE with OPTIONS. TITLE is a symbol specifying what kind of name DEVICE is: 'label for a partition label, 'device for a device file name, or 'any. When CHECK? is -true, check the file system before mounting it." +true, check the file system before mounting it. When CREATE-MOUNT-POINT? is +true, create TARGET if it does not exist yet." (with-monad %store-monad (return (service @@ -109,6 +111,9 @@ true, check the file system before mounting it." (documentation "Check, mount, and unmount the given file system.") (start #~(lambda args (let ((device (canonicalize-device-spec #$device '#$title))) + #$(if create-mount-point? + #~(mkdir-p #$target) + #~#t) #$(if check? #~(begin ;; Make sure fsck.ext2 & co. can be found. diff --git a/gnu/system.scm b/gnu/system.scm index 20942ec7f0..8c6fc13059 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -181,10 +181,11 @@ as 'needed-for-boot'." (sequence %store-monad (map (match-lambda (($ device title target type flags opts - #f check?) + #f check? create?) (file-system-service device target type #:title title #:check? check? + #:create-mount-point? create? #:options opts))) file-systems))) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 0c2021d7b4..ea8d961317 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -28,6 +28,8 @@ file-system-needed-for-boot? file-system-flags file-system-options + file-system-check? + file-system-create-mount-point? %fuse-control-file-system %binary-format-file-system @@ -57,7 +59,9 @@ (needed-for-boot? file-system-needed-for-boot? ; Boolean (default #f)) (check? file-system-check? ; Boolean - (default #t))) + (default #t)) + (create-mount-point? file-system-create-mount-point? ; Boolean + (default #f))) (define %fuse-control-file-system ;; Control file system for Linux' file systems in user-space (FUSE). From 7f239fd33ff7bf2f1ec48de37f14479699d4096f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 23:13:53 +0200 Subject: [PATCH 23/75] system: Add 'file-system' decl. for /dev/pts, and use the right options. Fixes . * gnu/system/file-systems.scm (%devtmpfs-file-system): Add 'needed-for-boot?' field. (%tty-gid, %pseudo-terminal-file-system): New variables. (%base-file-systems): Add %PSEUDO-TERMINAL-FILE-SYSTEM. * gnu/services/base.scm (udev-service): Remove dependency on 'file-system-/dev'. * gnu/system/shadow.scm (%base-groups): Add 'id' field for group 'tty'. * guix/build/linux-initrd.scm (boot-system): Remove 'mount' call for /dev/pts. * doc/guix.texi (File Systems): Add %pseudo-terminal-file-system. --- doc/guix.texi | 8 ++++++++ gnu/services/base.scm | 2 +- gnu/system/file-systems.scm | 26 ++++++++++++++++++++++++-- gnu/system/shadow.scm | 4 +++- guix/build/linux-initrd.scm | 5 ----- 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a88b546380..4490ff1deb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3074,6 +3074,14 @@ The @code{devtmpfs} file system to be mounted on @file{/dev}. This is a requirement for udev (@pxref{Base Services, @code{udev-service}}). @end defvr +@defvr {Scheme Variable} %pseudo-terminal-file-system +This is the file system to be mounted as @file{/dev/pts}. It supports +@dfn{pseudo-terminals} created @i{via} @code{openpty} and similar +functions (@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference +Manual}). Pseudo-terminals are used by terminal emulators such as +@command{xterm}. +@end defvr + @defvr {Scheme Variable} %binary-format-file-system The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space. This requires the diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 9a67109db0..2c9054af48 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -482,7 +482,7 @@ passed to @command{guix-daemon}." ;; Udev needs /dev to be a 'devtmpfs' mount so that new device ;; nodes can be added: see ;; . - (requirement '(root-file-system file-system-/dev)) + (requirement '(root-file-system)) (documentation "Populate the /dev directory, dynamically.") (start #~(lambda () diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index ea8d961317..76460d95af 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -85,11 +85,33 @@ (device "none") (mount-point "/dev") (type "devtmpfs") - (check? #f))) + (check? #f) + + ;; Mount it from the initrd so /dev/pts & co. can then be mounted over it. + (needed-for-boot? #t))) + +(define %tty-gid + ;; ID of the 'tty' group. Allocate it statically to make it easy to refer + ;; to it from here and from the 'tty' group definitions. + 1004) + +(define %pseudo-terminal-file-system + ;; The pseudo-terminal file system. It needs to be mounted so that + ;; statfs(2) returns DEVPTS_SUPER_MAGIC like libc's getpt(3) expects (and + ;; thus openpty(3) and its users, such as xterm.) + (file-system + (device "none") + (mount-point "/dev/pts") + (type "devpts") + (check? #f) + (needed-for-boot? #f) + (create-mount-point? #t) + (options (string-append "gid=" (number->string %tty-gid) ",mode=620")))) (define %base-file-systems ;; List of basic file systems to be mounted. Note that /proc and /sys are ;; currently mounted by the initrd. - (list %devtmpfs-file-system)) + (list %devtmpfs-file-system + %pseudo-terminal-file-system)) ;;; file-systems.scm ends here diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index ae6eac9a5b..e29dbb8c3e 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -20,6 +20,8 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (guix monads) + #:use-module ((gnu system file-systems) + #:select (%tty-gid)) #:use-module ((gnu packages admin) #:select (shadow)) #:use-module (gnu packages bash) @@ -84,7 +86,7 @@ ;; The following groups are conventionally used by things like udev to ;; control access to hardware devices. - (user-group (name "tty")) + (user-group (name "tty") (id %tty-gid)) (user-group (name "dialout")) (user-group (name "kmem")) (user-group (name "video")) diff --git a/guix/build/linux-initrd.scm b/guix/build/linux-initrd.scm index abf86f6a77..08df32ad1e 100644 --- a/guix/build/linux-initrd.scm +++ b/guix/build/linux-initrd.scm @@ -670,11 +670,6 @@ to it are lost." (switch-root "/root") (format #t "loading '~a'...\n" to-load) - ;; Obviously this has to be done each time we boot. Do it from here - ;; so that statfs(2) returns DEVPTS_SUPER_MAGIC like libc's getpt(3) - ;; expects (and thus openpty(3) and its users, such as xterm.) - (mount "none" "/dev/pts" "devpts") - ;; TODO: Remove /lib, /share, and /loader.go. (primitive-load to-load) From a85b83d2270673fdb00d03bbec7e3378c6adcac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 23:28:53 +0200 Subject: [PATCH 24/75] doc: Merge the type, variable, and function indices. * doc/guix.texi (Function Index): Rename to... (Programming Index): ... this. Merge the type, variable, and function indices. --- doc/guix.texi | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4490ff1deb..f475a172fe 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -67,7 +67,7 @@ package management tool written for the GNU system. * Acknowledgments:: Thanks! * GNU Free Documentation License:: The license of this manual. * Concept Index:: Concepts. -* Function Index:: Functions. +* Programming Index:: Data types, functions, and variables. @end menu @c ********************************************************************* @@ -4131,8 +4131,10 @@ an inspiration for Guix. @unnumbered Concept Index @printindex cp -@node Function Index -@unnumbered Function Index +@node Programming Index +@unnumbered Programming Index +@syncodeindex tp fn +@syncodeindex vr fn @printindex fn @bye From 2c071ce96e7e4049be3ae2eb958077566d3b4ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 00:44:27 +0200 Subject: [PATCH 25/75] system: Recognize more file system flags. * guix/build/linux-initrd.scm (MS_NOSUID, MS_NODEV, MS_NOEXEC): New variables. (mount-flags->bit-mask): New procedure. (mount-file-system)[flags->bit-mask]: Remove. Use 'mount-flags->bit-mask' instead. In /etc/mtab, use the empty string when OPTIONS is false. * gnu/services/base.scm (file-system-service): Add #:flags parameter and honor it. * gnu/system.scm (other-file-system-services): Pass FLAGS to 'file-system-service'. --- doc/guix.texi | 4 +++- gnu/services/base.scm | 13 +++++++++---- gnu/system.scm | 3 ++- guix/build/linux-initrd.scm | 35 ++++++++++++++++++++++++----------- 4 files changed, 38 insertions(+), 17 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f475a172fe..42e62d4648 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3039,7 +3039,9 @@ partitions without having to hard-code their actual device name. @item @code{flags} (default: @code{'()}) This is a list of symbols denoting mount flags. Recognized flags -include @code{read-only} and @code{bind-mount}. +include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow +access to special files), @code{no-suid} (ignore setuid and setgid +bits), and @code{no-exec} (disallow program execution.) @item @code{options} (default: @code{#f}) This is either @code{#f}, or a string denoting mount options. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2c9054af48..342b3c1488 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -29,6 +29,8 @@ #:use-module ((gnu packages base) #:select (glibc-final)) #:use-module (gnu packages package-management) + #:use-module ((guix build linux-initrd) + #:select (mount-flags->bit-mask)) #:use-module (guix gexp) #:use-module (guix monads) #:use-module (srfi srfi-1) @@ -96,13 +98,14 @@ This service must be the root of the service dependency graph so that its (respawn? #f))))) (define* (file-system-service device target type - #:key (check? #t) create-mount-point? - options (title 'any)) + #:key (flags '()) (check? #t) + create-mount-point? options (title 'any)) "Return a service that mounts DEVICE on TARGET as a file system TYPE with OPTIONS. TITLE is a symbol specifying what kind of name DEVICE is: 'label for a partition label, 'device for a device file name, or 'any. When CHECK? is true, check the file system before mounting it. When CREATE-MOUNT-POINT? is -true, create TARGET if it does not exist yet." +true, create TARGET if it does not exist yet. FLAGS is a list of symbols, +such as 'read-only' etc." (with-monad %store-monad (return (service @@ -124,7 +127,9 @@ true, create TARGET if it does not exist yet." (getenv "PATH"))) (check-file-system device #$type)) #~#t) - (mount device #$target #$type 0 #$options)) + (mount device #$target #$type + #$(mount-flags->bit-mask flags) + #$options)) #t)) (stop #~(lambda args ;; Normally there are no processes left at this point, so diff --git a/gnu/system.scm b/gnu/system.scm index 8c6fc13059..4648d810a3 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -186,7 +186,8 @@ as 'needed-for-boot'." #:title title #:check? check? #:create-mount-point? create? - #:options opts))) + #:options opts + #:flags flags))) file-systems))) (define (essential-services os) diff --git a/guix/build/linux-initrd.scm b/guix/build/linux-initrd.scm index 08df32ad1e..662f7967e3 100644 --- a/guix/build/linux-initrd.scm +++ b/guix/build/linux-initrd.scm @@ -40,6 +40,7 @@ find-partition-by-label canonicalize-device-spec + mount-flags->bit-mask check-file-system mount-file-system bind-mount @@ -393,6 +394,9 @@ networking values.) Return #t if INTERFACE is up, #f otherwise." ;; Linux mount flags, from libc's . (define MS_RDONLY 1) +(define MS_NOSUID 2) +(define MS_NODEV 4) +(define MS_NOEXEC 8) (define MS_BIND 4096) (define MS_MOVE 8192) @@ -494,6 +498,24 @@ UNIONFS." fsck code device) (start-repl))))) +(define (mount-flags->bit-mask flags) + "Return the number suitable for the 'flags' argument of 'mount' that +corresponds to the symbols listed in FLAGS." + (let loop ((flags flags)) + (match flags + (('read-only rest ...) + (logior MS_RDONLY (loop rest))) + (('bind-mount rest ...) + (logior MS_BIND (loop rest))) + (('no-suid rest ...) + (logior MS_NOSUID (loop rest))) + (('no-dev rest ...) + (logior MS_NODEV (loop rest))) + (('no-exec rest ...) + (logior MS_NOEXEC (loop rest))) + (() + 0)))) + (define* (mount-file-system spec #:key (root "/root")) "Mount the file system described by SPEC under ROOT. SPEC must have the form: @@ -503,15 +525,6 @@ form: DEVICE, MOUNT-POINT, and TYPE must be strings; OPTIONS can be a string or #f; FLAGS must be a list of symbols. CHECK? is a Boolean indicating whether to run a file system check." - (define flags->bit-mask - (match-lambda - (('read-only rest ...) - (or MS_RDONLY (flags->bit-mask rest))) - (('bind-mount rest ...) - (or MS_BIND (flags->bit-mask rest))) - (() - 0))) - (match spec ((source title mount-point type (flags ...) options check?) (let ((source (canonicalize-device-spec source title)) @@ -519,7 +532,7 @@ run a file system check." (when check? (check-file-system source type)) (mkdir-p mount-point) - (mount source mount-point type (flags->bit-mask flags) + (mount source mount-point type (mount-flags->bit-mask flags) (if options (string->pointer options) %null-pointer)) @@ -528,7 +541,7 @@ run a file system check." (mkdir-p (string-append root "/etc")) (let ((port (open-file (string-append root "/etc/mtab") "a"))) (format port "~a ~a ~a ~a 0 0~%" - source mount-point type options) + source mount-point type (or options "")) (close-port port)))))) (define (switch-root root) From db17ae5c27c614731b849cc4acc6a2857060c771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 01:25:01 +0200 Subject: [PATCH 26/75] system: Add /dev/shm. * gnu/system/file-systems.scm (%shared-memory-file-system): New variable. (%base-file-systems): Add it. * doc/guix.texi (File Systems): Document it. --- doc/guix.texi | 6 ++++++ gnu/system/file-systems.scm | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 42e62d4648..7bc10dc566 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3084,6 +3084,12 @@ Manual}). Pseudo-terminals are used by terminal emulators such as @command{xterm}. @end defvr +@defvr {Scheme Variable} %shared-memory-file-system +This file system is mounted as @file{/dev/shm} and is used to support +memory sharing across processes (@pxref{Memory-mapped I/O, +@code{shm_open},, libc, The GNU C Library Reference Manual}). +@end defvr + @defvr {Scheme Variable} %binary-format-file-system The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space. This requires the diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 76460d95af..8700530a76 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -108,10 +108,22 @@ (create-mount-point? #t) (options (string-append "gid=" (number->string %tty-gid) ",mode=620")))) +(define %shared-memory-file-system + ;; Shared memory. + (file-system + (device "tmpfs") + (mount-point "/dev/shm") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev)) + (options "size=50%") ;TODO: make size configurable + (create-mount-point? #t))) + (define %base-file-systems ;; List of basic file systems to be mounted. Note that /proc and /sys are ;; currently mounted by the initrd. (list %devtmpfs-file-system - %pseudo-terminal-file-system)) + %pseudo-terminal-file-system + %shared-memory-file-system)) ;;; file-systems.scm ends here From 705f8b68f1b2305e265575fdc295e1900586599e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 23 Jul 2014 02:13:34 -0400 Subject: [PATCH 27/75] system: Add missing exports to (gnu system file-systems). * gnu/system/file-systems.scm (%pseudo-terminal-file-system) (%shared-memory-file-system): Add to export list. --- gnu/system/file-systems.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 8700530a76..3b13d820cf 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -33,6 +33,8 @@ %fuse-control-file-system %binary-format-file-system + %shared-memory-file-system + %pseudo-terminal-file-system %devtmpfs-file-system %base-file-systems)) From 5383fb5bd4bec0b74b9cc9522b0906dec52cf1ab Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 23 Jul 2014 16:46:05 +0200 Subject: [PATCH 28/75] gnu: pari-gp: Upgrade to 2.7.1. * gnu/packages/algebra.scm (pari-gp): Upgrade to 2.7.1. --- gnu/packages/algebra.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 9ed978536d..8c12eb604e 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -84,14 +84,14 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.7.0") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" version ".tar.gz")) (sha256 (base32 - "1hk7lmq09crr9jvia8nxzhvbwf8mw62xk456i96jg8dljh0r9sgz")))) + "1gj1rddi22hinzwy7r6hljgbi252wwwyd6gapg4hvcn0ycc7jqyc")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) ("perl" ,perl) From 83a17b62363c85f05a0916e9b7493d9d58ce7196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Tue, 22 Jul 2014 22:12:05 +0200 Subject: [PATCH 29/75] install: Add a service to back the store with the target disk. Fixes . Reported by Adam Pribyl . * gnu/services/dmd.scm (dmd-configuration-file)[config]: Import (guix build utils). * gnu/system/install.scm (make-cow-store, cow-store-service): New procedures. (installation-services): Use it. (%backing-directory): New variable. * doc/guix.texi (System Installation): Add the 'deco start cow-store /mnt' phase. --- doc/guix.texi | 11 +++++- gnu/services/dmd.scm | 1 + gnu/system/install.scm | 77 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7bc10dc566..6266f70194 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2799,9 +2799,18 @@ The installation image includes Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and e2fsprogs, the suite of tools to manipulate ext2/ext3/ext4 file systems. +@item +Once that is done, mount the target root partition under @file{/mnt}. + +@item +Lastly, run @code{deco start cow-store /mnt}. + +This will make @file{/gnu/store} copy-on-write, such that packages added +to it during the installation phase will be written to the target disk +rather than kept in memory. + @end enumerate -Once that is done, mount the target root partition under @file{/mnt}. @subsection Proceeding with the Installation diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm index 74adb27885..dfda2708f5 100644 --- a/gnu/services/dmd.scm +++ b/gnu/services/dmd.scm @@ -49,6 +49,7 @@ (use-modules (ice-9 ftw) (guix build syscalls) + (guix build utils) ((guix build linux-initrd) #:select (check-file-system canonicalize-device-spec))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index d4a32609ba..d3539b3f84 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -20,6 +20,7 @@ #:use-module (gnu) #:use-module (guix gexp) #:use-module (guix monads) + #:use-module ((guix store) #:select (%store-prefix)) #:use-module (gnu packages linux) #:use-module (gnu packages package-management) #:use-module (gnu packages disk) @@ -42,6 +43,78 @@ manual." "-f" (string-append #$guix "/share/info/guix.info") "-n" "System Installation"))) +(define %backing-directory + ;; Sub-directory used as the backing store for copy-on-write. + "/tmp/guix-inst") + +(define (make-cow-store target) + "Return a gexp that makes the store copy-on-write, using TARGET as the +backing store. This is useful when TARGET is on a hard disk, whereas the +current store is on a RAM disk." + (define (unionfs read-only read-write mount-point) + ;; Make MOUNT-POINT the union of READ-ONLY and READ-WRITE. + + ;; Note: in the command below, READ-WRITE appears before READ-ONLY so that + ;; it is considered a "higher-level branch", as per unionfs-fuse(8), + ;; thereby allowing files existing on READ-ONLY to be copied over to + ;; READ-WRITE. + #~(fork+exec-command + (list (string-append #$unionfs-fuse "/bin/unionfs") + "-o" + "cow,allow_other,use_ino,max_files=65536,nonempty" + (string-append #$read-write "=RW:" #$read-only "=RO") + #$mount-point))) + + (define (set-store-permissions directory) + ;; Set the right perms on DIRECTORY to use it as the store. + #~(begin + (chown #$directory 0 30000) ;use the fixed 'guixbuild' GID + (chmod #$directory #o1775))) + + #~(begin + (unless (file-exists? "/.ro-store") + (mkdir "/.ro-store") + (mount #$(%store-prefix) "/.ro-store" "none" + (logior MS_BIND MS_RDONLY))) + + (let ((rw-dir (string-append target #$%backing-directory))) + (mkdir-p rw-dir) + (mkdir-p "/.rw-store") + #$(set-store-permissions #~rw-dir) + #$(set-store-permissions "/.rw-store") + + ;; Mount the union, then atomically make it the store. + (and #$(unionfs "/.ro-store" #~rw-dir "/.rw-store") + (begin + (sleep 1) ;XXX: wait for unionfs to be ready + (mount "/.rw-store" #$(%store-prefix) "" MS_MOVE) + (rmdir "/.rw-store")))))) + +(define (cow-store-service) + "Return a service that makes the store copy-on-write, such that writes go to +the user's target storage device rather than on the RAM disk." + ;; See for the initial report. + (with-monad %store-monad + (return (service + (requirement '(root-file-system user-processes)) + (provision '(cow-store)) + (documentation + "Make the store copy-on-write, with writes going to \ +the given target.") + (start #~(case-lambda + ((target) + #$(make-cow-store #~target) + target) + (else + ;; Do nothing, and mark the service as stopped. + #f))) + (stop #~(lambda (target) + ;; Delete the temporary directory, but leave everything + ;; mounted as there may still be processes using it + ;; since 'user-processes' doesn't depend on us. + (delete-file-recursively + (string-append target #$%backing-directory)))))))) + (define (installation-services) "Return the list services for the installation image." (let ((motd (text-file "motd" " @@ -88,6 +161,10 @@ You have been warned. Thanks for being so brave. ;; Start udev so that useful device nodes are available. (udev-service) + ;; Add the 'cow-store' service, which users have to start manually + ;; since it takes the installation directory as an argument. + (cow-store-service) + ;; Install Unicode support and a suitable font. (console-font-service "tty1") (console-font-service "tty2") From 742160428e3acde63c704e668542ae9b1a7c404b Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 23 Jul 2014 17:58:34 +0200 Subject: [PATCH 30/75] gnu: dvdisaster: Upgrade to 0.72.6. * gnu/packages/cdrom.scm (dvdisaster): Upgrade to 0.72.6. --- gnu/packages/cdrom.scm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index e520312164..b4b20ffba5 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Ludovic Courtès -;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2013, 2014 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -173,14 +173,14 @@ reconstruction capability.") (define-public dvdisaster (package (name "dvdisaster") - (version "0.72.4") + (version "0.72.6") (source (origin (method url-fetch) (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-" version ".tar.bz2")) (sha256 (base32 - "0pm039a78h7m9vvjmmjfkl05ii6qdmfhvbypxjbc7j5w82y66is4")))) + "0sqrprc5rh3shnfli25m2wy0i5f83db54iv04s5s7bxf77m7sy79")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+-2))) @@ -192,7 +192,14 @@ reconstruction capability.") `(;; Parallel builds appear to be unsafe, see ;; . #:parallel-build? #f - #:tests? #f)) ; no check target + #:tests? #f ; no check target + #:phases + (alist-cons-before + 'patch-source-shebangs 'sanitise + (lambda _ + ;; delete dangling symlink + (delete-file ".#GNUmakefile")) + %standard-phases))) (home-page "http://dvdisaster.net/en/index.html") (synopsis "error correcting codes for optical media images") (description "Optical media (CD,DVD,BD) keep their data only for a From b6debdaa22931646fbbc116048732c6bcb37af3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 18:11:24 +0200 Subject: [PATCH 31/75] guix system: Fix type error in 'reconfigure'. Partly fixes . Reported by Mark H Weaver . * guix/scripts/system.scm (perform-action) : Pass the output file name of GRUB.CFG to 'install-grub'. --- guix/scripts/system.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 57f42215ee..5737807d8b 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -299,7 +299,8 @@ actions." (mlet %store-monad ((% (switch-to-system os))) (when grub? (unless (false-if-exception - (install-grub grub.cfg device "/")) + (install-grub (derivation->output-path grub.cfg) + device "/")) (leave (_ "failed to install GRUB on device '~a'~%") device))) (return #t))) From 720ee245dae56759785f968aca1714ea222645ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 18:17:06 +0200 Subject: [PATCH 32/75] guix system: Protect against changes to $PATH when activating the system. Partly fixes . Reported by Mark H Weaver . * guix/scripts/system.scm (save-environment-excursion): New macro. (switch-to-system): Wrap 'primitive-load' call in it. --- guix/scripts/system.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 5737807d8b..4f1869af38 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -172,6 +172,16 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG." ;; The system profile. (string-append %state-directory "/profiles/system")) +(define-syntax-rule (save-environment-excursion body ...) + "Save the current environment variables, run BODY..., and restore them." + (let ((env (environ))) + (dynamic-wind + (const #t) + (lambda () + body ...) + (lambda () + (environ env))))) + (define* (switch-to-system os #:optional (profile %system-profile)) "Make a new generation of PROFILE pointing to the directory of OS, switch to @@ -185,7 +195,11 @@ it atomically, and then run OS's activation script." (switch-symlinks profile generation) (format #t (_ "activating system...~%")) - (return (primitive-load (derivation->output-path script))) + + ;; The activation script may change $PATH, among others, so protect + ;; against that. + (return (save-environment-excursion + (primitive-load (derivation->output-path script)))) ;; TODO: Run 'deco reload ...'. ))) From 906f70406ab6a44d6fadb5d22c43d86e4944da78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 18:51:07 +0200 Subject: [PATCH 33/75] gnu: module-init-tools: Handle $LINUX_MODULE_DIRECTORY without trailing slash. Fixes . * gnu/packages/patches/module-init-tools-moduledir.patch: Adjust to deal with the lack of a trailing slash. --- .../patches/module-init-tools-moduledir.patch | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/gnu/packages/patches/module-init-tools-moduledir.patch b/gnu/packages/patches/module-init-tools-moduledir.patch index 68d7988f53..7a40a03b04 100644 --- a/gnu/packages/patches/module-init-tools-moduledir.patch +++ b/gnu/packages/patches/module-init-tools-moduledir.patch @@ -2,17 +2,11 @@ This patch changes 'modprobe' & co. so they honor the 'LINUX_MODULE_DIRECTORY' environment variable, rather than looking for modules exclusively in /lib/modules. -Patch by David Guibert, from Nixpkgs; adjusted to use 'LINUX_MODULE_DIRECTORY' -rather than 'MODULE_DIR' as the variable name. - -commit cf2c95edb7918bc658f6cae93793c1949fc9cb6e -Author: David Guibert -Date: Fri Aug 5 14:20:12 2011 +0200 - - introduce module-dir +Original patch by David Guibert, from Nixpkgs; adjusted to use +'LINUX_MODULE_DIRECTORY' rather than 'MODULE_DIR' as the variable name. diff --git a/depmod.c b/depmod.c -index a1d2f8c..9362a35 100644 +index a1d2f8c..a8f92b2 100644 --- a/depmod.c +++ b/depmod.c @@ -48,9 +48,6 @@ @@ -38,26 +32,30 @@ index a1d2f8c..9362a35 100644 } + if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) { -+ module_dir = "/lib/modules/"; ++ module_dir = "/lib/modules"; + } + while ((line = getline_wrapped(cfile, &linenum)) != NULL) { char *ptr = line; char *cmd, *modname; -@@ -1550,7 +1552,7 @@ static int parse_config_file(const char *filename, +@@ -1549,8 +1551,8 @@ static int parse_config_file(const char *filename, + 0, *search); continue; } - nofail_asprintf(&dirname, "%s%s%s/%s", basedir, +- nofail_asprintf(&dirname, "%s%s%s/%s", basedir, - MODULE_DIR, kernelversion, search_path); ++ nofail_asprintf(&dirname, "%s%s/%s/%s", basedir, + module_dir, kernelversion, search_path); len = strlen(dirname); *search = add_search(dirname, len, *search); free(dirname); -@@ -1565,7 +1567,7 @@ static int parse_config_file(const char *filename, +@@ -1564,8 +1566,8 @@ static int parse_config_file(const char *filename, + if (!regex_match(kernelversion, (const char *)version)) continue; - nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir, +- nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir, - MODULE_DIR, kernelversion, subdir, modname); ++ nofail_asprintf(&pathname, "%s%s/%s/%s/%s.ko", basedir, + module_dir, kernelversion, subdir, modname); *overrides = add_override(pathname, *overrides); @@ -76,24 +74,26 @@ index a1d2f8c..9362a35 100644 - nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version); + if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) { -+ module_dir = "/lib/modules/"; ++ module_dir = "/lib/modules"; + } + + nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version); if (maybe_all) { if (!doing_stdout && !depfile_out_of_date(dirname)) -@@ -1850,7 +1857,7 @@ int main(int argc, char *argv[]) +@@ -1849,8 +1856,8 @@ int main(int argc, char *argv[]) + char *dirname; size_t len; - nofail_asprintf(&dirname, "%s%s%s/updates", basedir, +- nofail_asprintf(&dirname, "%s%s%s/updates", basedir, - MODULE_DIR, version); ++ nofail_asprintf(&dirname, "%s%s/%s/updates", basedir, + module_dir, version); len = strlen(dirname); search = add_search(dirname, len, search); } diff --git a/modinfo.c b/modinfo.c -index 1dd8469..67b1041 100644 +index 1dd8469..6a1865b 100644 --- a/modinfo.c +++ b/modinfo.c @@ -19,9 +19,6 @@ @@ -113,7 +113,7 @@ index 1dd8469..67b1041 100644 + char *module_dir; + + if((module_dir = getenv("LINUX_MODULE_DIRECTORY")) == NULL) { -+ module_dir = "/lib/modules/"; ++ module_dir = "/lib/modules"; + } if (strchr(name, '.') || strchr(name, '/')) { @@ -131,7 +131,7 @@ index 1dd8469..67b1041 100644 /* Search for it in modules.dep. */ nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep"); diff --git a/modprobe.c b/modprobe.c -index 5464f45..d9fbf9d 100644 +index 5464f45..cb57917 100644 --- a/modprobe.c +++ b/modprobe.c @@ -86,10 +86,6 @@ typedef enum From 4a8b4c25b07eedd1427d8c33c01d0c7d6a0f17b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 19:09:27 +0200 Subject: [PATCH 34/75] gnu: kmod: Install symlinks for 'insmod', 'modprobe', etc. * gnu/packages/linux.scm (kmod)[arguments]: Add 'install-modprobe&co' phase. --- gnu/packages/linux.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 09d123a08d..3ffe2a4cdd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1273,7 +1273,18 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") ("zlib" ,guix:zlib))) (arguments `(#:tests? #f ; FIXME: Investigate test failures - #:configure-flags '("--with-xz" "--with-zlib"))) + #:configure-flags '("--with-xz" "--with-zlib") + #:phases (alist-cons-after + 'install 'install-modprobe&co + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (tool) + (symlink "kmod" + (string-append bin "/" tool))) + '("insmod" "rmmod" "lsmod" "modprobe" + "modinfo" "depmod")))) + %standard-phases))) (home-page "https://www.kernel.org/") (synopsis "Kernel module tools") (description "kmod is a set of tools to handle common tasks with Linux From 94b13427d766b030b02b2df6a291525335f2d08d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Jul 2014 22:27:17 +0200 Subject: [PATCH 35/75] gnu: module-init-tools: Fix $LINUX_MODULE_DIRECTORY handling in 'depmod'. * gnu/packages/patches/module-init-tools-moduledir.patch: Adjust the 'depmod' part to handle $LINUX_MODULE_DIRECTORY without a trailing slash. --- gnu/packages/patches/module-init-tools-moduledir.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/patches/module-init-tools-moduledir.patch b/gnu/packages/patches/module-init-tools-moduledir.patch index 7a40a03b04..08f03d1cc4 100644 --- a/gnu/packages/patches/module-init-tools-moduledir.patch +++ b/gnu/packages/patches/module-init-tools-moduledir.patch @@ -6,7 +6,7 @@ Original patch by David Guibert, from Nixpkgs; adjusted to use 'LINUX_MODULE_DIRECTORY' rather than 'MODULE_DIR' as the variable name. diff --git a/depmod.c b/depmod.c -index a1d2f8c..a8f92b2 100644 +index a1d2f8c..ff579c7 100644 --- a/depmod.c +++ b/depmod.c @@ -48,9 +48,6 @@ @@ -77,7 +77,7 @@ index a1d2f8c..a8f92b2 100644 + module_dir = "/lib/modules"; + } + -+ nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version); ++ nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, version); if (maybe_all) { if (!doing_stdout && !depfile_out_of_date(dirname)) From 20e6c852d35a6fbbe649b735c65df92ec400e864 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 23 Jul 2014 16:43:53 -0400 Subject: [PATCH 36/75] gnu: htop: Update source URI. * gnu/packages/admin.scm (htop): Update source URI. --- gnu/packages/admin.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f6232abafa..9fef60d761 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -104,7 +104,7 @@ graphs and can export its output to different formats.") (version "1.0.3") (source (origin (method url-fetch) - (uri (string-append "http://hisham.hm/htop/" + (uri (string-append "http://hisham.hm/htop/releases/" version "/htop-" version ".tar.gz")) (sha256 (base32 From 1b4f23bdf6169959cb734b99f50401faf0f86d2e Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 23 Jul 2014 23:03:00 +0200 Subject: [PATCH 37/75] gnu: nano: Upgrade to 2.3.6. * gnu/packages/nano.scm (nano): Upgrade to 2.3.6. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 73053513d5..1bb6fea889 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -27,7 +27,7 @@ (define-public nano (package (name "nano") - (version "2.3.4") + (version "2.3.6") (source (origin (method url-fetch) @@ -35,7 +35,7 @@ version ".tar.gz")) (sha256 (base32 - "1hcqv5yam4pkqx1sviigikzvd7n1pz6lwp7lzpdzagck9fgi4x0p")))) + "0d4ml0v9yi37pjs211xs38w9whsj6530wz3kmrvwgh8jigqz6jx7")))) (build-system gnu-build-system) (inputs `(("gettext" ,gnu-gettext) From bc7f024c4747effc9b2149c3b9b13f2acd2e1cbe Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 23 Jul 2014 23:07:18 +0200 Subject: [PATCH 38/75] gnu: xorriso: Upgrade to 3.1.8. * gnu/packages/cdrom.scm (xorriso): Upgrade to 3.1.8. --- gnu/packages/cdrom.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index b4b20ffba5..518cfc3c2b 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -98,14 +98,14 @@ extraction from CDs.") (define-public xorriso (package (name "xorriso") - (version "1.3.6.pl01") + (version "1.3.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" version ".tar.gz")) (sha256 (base32 - "07bm20kb4f6q5pbkxhy7w8ggw2gxkrq45cda2kbh6wgphs5z2h7q")))) + "0zhhj9lr9z7hnb2alac54mc28w1l0mbanphhpmy3ylsi8rih84lh")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) From 408137d992f915dde89c2bc2c9727ae510e214d7 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 23 Jul 2014 23:09:36 +0200 Subject: [PATCH 39/75] gnu: parallel: Upgrade to 20140722. * gnu/packages/parallel.scm (parallel): Upgrade to 20140722. --- gnu/packages/parallel.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index cf160d07b6..a4755e043d 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -27,7 +27,7 @@ (define-public parallel (package (name "parallel") - (version "20140622") + (version "20140722") (source (origin (method url-fetch) @@ -35,7 +35,7 @@ version ".tar.bz2")) (sha256 (base32 - "0frlp645yghnwq8x7dk8pdm6id1mqkkh7w48mcbpd04pw225gljq")))) + "165vf8hpl47z38aswsll1284l8xa9a8jwx3a3d2rzshm9yzbiq5n")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/parallel/") From 9fd571a29201b90d750e3e7b4be4842ae6cc59ca Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 23 Jul 2014 18:26:03 -0400 Subject: [PATCH 40/75] gnu: Adjust more packages to GLib "bin" split. * gnu/packages/gimp.scm (gegl): Add glib:bin to 'native-inputs'. * gnu/packages/mail.scm (mu): Ditto. --- gnu/packages/gimp.scm | 1 + gnu/packages/mail.scm | 1 + 2 files changed, 2 insertions(+) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 9db543199c..399c99bcdf 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -101,6 +101,7 @@ provided as well as the framework to add new color models and data types.") ("libjpeg" ,libjpeg-8))) (native-inputs `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin") ; for gtester ("intltool" ,intltool))) (home-page "http://gegl.org") (synopsis "Graph based image processing framework") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index d9c847d4ce..7bdd81b4c8 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -301,6 +301,7 @@ repository and Maildir/IMAP as LOCAL repository.") (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin") ; for gtester ("texinfo" ,texinfo))) ;; TODO: Add webkit and gtk to build the mug GUI. (inputs From 77362186831b8c07e33b2e8ef0b4c09a446893a4 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Wed, 23 Jul 2014 23:59:04 +0000 Subject: [PATCH 41/75] gnu: Add libftdi. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/libftdi.scm: New file * gnu-system.am (GNU_SYSTEM_MODULES): Add libftdi.scm Signed-off-by: Ludovic Courtès --- gnu-system.am | 1 + gnu/packages/libftdi.scm | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 gnu/packages/libftdi.scm diff --git a/gnu-system.am b/gnu-system.am index 0423d1400c..c3e1b98c03 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -139,6 +139,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/libdaemon.scm \ gnu/packages/libevent.scm \ gnu/packages/libffi.scm \ + gnu/packages/libftdi.scm \ gnu/packages/libidn.scm \ gnu/packages/libphidget.scm \ gnu/packages/libsigsegv.scm \ diff --git a/gnu/packages/libftdi.scm b/gnu/packages/libftdi.scm new file mode 100644 index 0000000000..6e8100ce29 --- /dev/null +++ b/gnu/packages/libftdi.scm @@ -0,0 +1,48 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Manolis Fragkiskos Ragkousis +;;; +;;; 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 . + +(define-module (gnu packages libftdi) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages libusb) + #:use-module (guix build-system cmake)) + +(define-public libftdi + (package + (name "libftdi") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-" + version ".tar.bz2")) + (sha256 + (base32 + "088yh8pxd6q53ssqndydcw1dkq51cjqyahc03lm6iip22cdazcf0")))) + (build-system cmake-build-system) + (native-inputs + `(("libusb" ,libusb))) + (home-page "http://www.intra2net.com") + (synopsis "FTDI USB driver with bitbang mode") + (description + "libFTDI is a library to talk to FTDI chips: FT232BM, +FT245BM, FT2232C, FT2232D, FT245R and FT232H including the popular +bitbangmode.") + (license lgpl2.1+))) From da9c810280c66b3c71699131fb09820cd0b275cf Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 23 Jul 2014 21:56:45 -0400 Subject: [PATCH 42/75] gnu: gcc: Update to 4.9.1. * gnu/packages/gcc.scm (gcc-4.9): Update to 4.9.1. --- gnu/packages/gcc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c927e6e49c..aed2e8925e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -272,14 +272,14 @@ Go. It also includes runtime support libraries for these languages.") (define-public gcc-4.9 (package (inherit gcc-4.7) - (version "4.9.0") + (version "4.9.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.bz2")) (sha256 (base32 - "0mqjxpw2klskls00lwx1k24pnyzm3whqxg3hk74c3sddgfllgc5r")))))) + "0zki3ngi0gsidnmsp88mjl2868cc7cm5wm1vwqw6znja28d7hd6k")))))) (define (custom-gcc gcc name languages) "Return a custom version of GCC that supports LANGUAGES." From 47b73c34f0ac1fbe2cacb9233e7e41cdcfef9caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 19:38:50 +0200 Subject: [PATCH 43/75] services: xorg: Remove /var/run/slim.lock when starting. Reported by Mark H. Weaver. * gnu/services/xorg.scm (slim-service)[start]: Remove /var/run/slim.lock before starting 'slim'. --- gnu/services/xorg.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 7ca0d3f7db..04d1296edc 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -146,10 +146,15 @@ reboot_cmd " dmd "/sbin/reboot (provision '(xorg-server)) (requirement '(user-processes host-name udev)) (start - #~(make-forkexec-constructor - (list (string-append #$slim "/bin/slim") "-nodaemon") - #:environment-variables - (list (string-append "SLIM_CFGFILE=" #$slim.cfg)))) + #~(lambda () + ;; A stale lock file can prevent SLiM from starting, so remove it + ;; to be on the safe side. + (false-if-exception (delete-file "/var/run/slim.lock")) + + (fork+exec-command + (list (string-append #$slim "/bin/slim") "-nodaemon") + #:environment-variables + (list (string-append "SLIM_CFGFILE=" #$slim.cfg))))) (stop #~(make-kill-destructor)) (respawn? #t) (pam-services From 7ab44369b34a23e5d22ac51b7fbfe31c0de9fbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 19:47:48 +0200 Subject: [PATCH 44/75] doc: Recommend partition labels. * doc/guix.texi (System Installation): Recommend partition labels. --- doc/guix.texi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 6266f70194..2f44ce9506 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2795,6 +2795,11 @@ image does not contain all the software and tools that may be needed. Unless this has already been done, you must partition and format the target partitions. +Preferably, assign partitions a label so that you can easily and +reliably refer to them in @code{file-system} declarations (@pxref{File +Systems}). This is typically done using the @code{-L} option of +@command{mkfs.ext4} and related commands. + The installation image includes Parted (@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and e2fsprogs, the suite of tools to manipulate ext2/ext3/ext4 file systems. From 0a90af153199b03deced53da7ef7f50f0e561f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 22:27:35 +0200 Subject: [PATCH 45/75] monads: Add 'interned-file'. * guix/monads.scm (interned-file): New procedure. * tests/monads.scm ("interned-file"): New test. * doc/guix.texi (The Store Monad): Document it. --- doc/guix.texi | 23 +++++++++++++++++++++++ guix/monads.scm | 13 +++++++++++++ tests/monads.scm | 10 ++++++++++ 3 files changed, 46 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 2f44ce9506..c504a5d0ba 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2012,6 +2012,29 @@ will references @var{coreutils}, @var{grep}, and @var{sed}, thereby preventing them from being garbage-collected during its lifetime. @end deffn +@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ + [#:recursive? #t] +Return the name of @var{file} once interned in the store. Use +@var{name} as its store name, or the basename of @var{file} if +@var{name} is omitted. + +When @var{recursive?} is true, the contents of @var{file} are added +recursively; if @var{file} designates a flat file and @var{recursive?} +is true, its contents are added, and its permission bits are kept. + +The example below adds a file to the store, under two different names: + +@example +(run-with-store (open-connection) + (mlet %store-monad ((a (interned-file "README")) + (b (interned-file "README" "LEGU-MIN"))) + (return (list a b)))) + +@result{} ("/gnu/store/rwm@dots{}-README" "/gnu/store/44i@dots{}-LEGU-MIN") +@end example + +@end deffn + @deffn {Monadic Procedure} package-file @var{package} [@var{file}] @ [#:system (%current-system)] [#:output "out"] Return as a monadic value in the absolute file name of @var{file} within the @var{output} diff --git a/guix/monads.scm b/guix/monads.scm index c2c6f1a03d..4af2b704ab 100644 --- a/guix/monads.scm +++ b/guix/monads.scm @@ -55,6 +55,7 @@ run-with-store text-file text-file* + interned-file package-file origin->derivation package->derivation @@ -362,6 +363,18 @@ and store file names; the resulting store file holds references to all these." (derivation-expression name (builder inputs) #:inputs inputs))) +(define* (interned-file file #:optional name + #:key (recursive? #t)) + "Return the name of FILE once interned in the store. Use NAME as its store +name, or the basename of FILE if NAME is omitted. + +When RECURSIVE? is true, the contents of FILE are added recursively; if FILE +designates a flat file and RECURSIVE? is true, its contents are added, and its +permission bits are kept." + (lambda (store) + (add-to-store store (or name (basename file)) + recursive? "sha256" file))) + (define* (package-file package #:optional file #:key (system (%current-system)) (output "out")) diff --git a/tests/monads.scm b/tests/monads.scm index ac19d33f93..ea3e4006ab 100644 --- a/tests/monads.scm +++ b/tests/monads.scm @@ -108,6 +108,16 @@ guile))) #:guile-for-build (package-derivation %store %bootstrap-guile))) +(test-assert "interned-file" + (run-with-store %store + (mlet* %store-monad ((file -> (search-path %load-path "guix.scm")) + (a (interned-file file)) + (b (interned-file file "b"))) + (return (equal? (call-with-input-file file get-string-all) + (call-with-input-file a get-string-all) + (call-with-input-file b get-string-all)))) + #:guile-for-build (package-derivation %store %bootstrap-guile))) + (define derivation-expression (@@ (guix monads) derivation-expression)) From 1dac85663858c8323a0d2483fb675aa5820d4d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 22:45:24 +0200 Subject: [PATCH 46/75] install: Add a configuration template to the image. * gnu/system/os-config.tmpl: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it * gnu/system/install.scm (configuration-template-service): New procedure. (installation-services): Call it. * doc/guix.texi (System Installation): Mention configuration-template.scm, and @include gnu/system/os-config.tmpl. --- doc/guix.texi | 19 +++---------------- gnu-system.am | 1 + gnu/system/install.scm | 24 ++++++++++++++++++++++++ gnu/system/os-config.tmpl | 31 +++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 16 deletions(-) create mode 100644 gnu/system/os-config.tmpl diff --git a/doc/guix.texi b/doc/guix.texi index c504a5d0ba..69bae80834 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2850,24 +2850,11 @@ It is better to store that file on the target root file system, say, as @file{/mnt/etc/config.scm}. A minimal operating system configuration, with just the bare minimum and -only a root account would look like this: +only a root account would look like this (on the installation system, +this example is available as @file{/etc/configuration-template.scm}): @example -(use-modules (gnu)) - -(operating-system - (host-name "foo") - (timezone "Europe/Paris") - (locale "en_US.UTF-8") - - ;; Assuming /dev/sdX is the target hard disk, and /dev/sdX1 the - ;; target root file system. - (bootloader (grub-configuration (device "/dev/sdX"))) - (file-systems (cons (file-system - (device "/dev/sdX1") - (mount-point "/") - (type "ext4")) - %base-file-systems))) +@include gnu/system/os-config.tmpl @end example @noindent diff --git a/gnu-system.am b/gnu-system.am index c3e1b98c03..6e1e8afec0 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -268,6 +268,7 @@ GNU_SYSTEM_MODULES = \ gnu/system/file-systems.scm \ gnu/system/grub.scm \ gnu/system/install.scm \ + gnu/system/os-config.tmpl \ gnu/system/linux.scm \ gnu/system/linux-initrd.scm \ gnu/system/shadow.scm \ diff --git a/gnu/system/install.scm b/gnu/system/install.scm index d3539b3f84..567934e4c1 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -115,6 +115,27 @@ the given target.") (delete-file-recursively (string-append target #$%backing-directory)))))))) +(define (configuration-template-service) + "Return a dummy service whose purpose is to install an operating system +configuration template file in the installation system." + + (define local-template + "/etc/configuration-template.scm") + (define template + (search-path %load-path "gnu/system/os-config.tmpl")) + + (mlet %store-monad ((template (interned-file template))) + (return (service + (requirement '(root-file-system)) + (provision '(os-config-template)) + (documentation + "This dummy service installs an OS configuration template.") + (start #~(const #t)) + (stop #~(const #f)) + (activate + #~(unless (file-exists? #$local-template) + (copy-file #$template #$local-template))))))) + (define (installation-services) "Return the list services for the installation image." (let ((motd (text-file "motd" " @@ -144,6 +165,9 @@ You have been warned. Thanks for being so brave. #:auto-login "guest" #:login-program (log-to-info)) + ;; Documentation add-on. + (configuration-template-service) + ;; A bunch of 'root' ttys. (normal-tty "tty3") (normal-tty "tty4") diff --git a/gnu/system/os-config.tmpl b/gnu/system/os-config.tmpl new file mode 100644 index 0000000000..ad58606f67 --- /dev/null +++ b/gnu/system/os-config.tmpl @@ -0,0 +1,31 @@ +;; This is an operating system configuration template. + +(use-modules (gnu)) + +(operating-system + (host-name "antelope") + (timezone "Europe/Paris") + (locale "en_US.UTF-8") + + ;; Assuming /dev/sdX is the target hard disk, and "root" is + ;; the label of the target root file system. + (bootloader (grub-configuration (device "/dev/sdX"))) + (file-systems (cons (file-system + (device "root") + (title 'label) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + + ;; This is where user accounts are specified. The "root" + ;; account is implicit, and is initially created with the + ;; empty password. + (users (list (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + + ;; Adding the account to the "wheel" group + ;; makes it a sudoer. + (supplementary-groups '("wheel")) + (home-directory "/home/alice"))))) From d9372161ef7ab6979f5dc1d92ad59acb5660bb3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 23:01:55 +0200 Subject: [PATCH 47/75] services: xorg: Honor ~/.xsession. * gnu/services/xorg.scm (xinitrc): Attempt to execute ~/.xsession. --- gnu/services/xorg.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 04d1296edc..a34129a8ed 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -97,7 +97,12 @@ EndSection #~(begin (use-modules (ice-9 match)) - ;; TODO: Check for ~/.xsession. + ;; First, try to run ~/.xsession. + (let* ((home (getenv "HOME")) + (file (string-append home "/.xsession"))) + (false-if-exception (execl file file))) + + ;; Then try a pre-configured session type. (match (command-line) ((_ "ratpoison") (execl (string-append #$ratpoison "/bin/ratpoison"))) From 054e85761fc0743ebe957f759f3e6b46739d5a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 23:07:53 +0200 Subject: [PATCH 48/75] doc: Add "guix system" to 'dir'. * doc/guix.texi: Add "guix system" to the dir entry. --- doc/guix.texi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 69bae80834..6b9e87018f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -29,6 +29,8 @@ Documentation License''. Managing packages with Guix. * guix build: (guix)Invoking guix build Building packages with Guix. +* guix system: (guix)Invoking guix system + Managing the operating system configuration. @end direntry @titlepage From 931c132a58d86287d7a73964f9731a3b578538cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 24 Jul 2014 23:38:39 +0200 Subject: [PATCH 49/75] doc: Make sure out-of-source-tree builds find os-config.tmpl. * Makefile.am (BUILT_SOURCES): New variable. * daemon.am (BUILT_SOURCES): Use +=. * doc.am (BUILT_SOURCES, MAINTAINERCLEANFILES, EXTRA_DIST): Add doc/os-config.texi. (doc/os-config.texi): New target. * doc/guix.texi (System Installation): Include os-config.texi. --- Makefile.am | 1 + daemon.am | 2 +- doc.am | 11 ++++++++++- doc/guix.texi | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index 41e0e67120..ed11bcc7ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -253,6 +253,7 @@ guix_install_go_files = install-nobase_nodist_guilemoduleDATA $(guix_install_go_files): install-nobase_dist_guilemoduleDATA SUBDIRS = po/guix po/packages +BUILT_SOURCES = include doc.am diff --git a/daemon.am b/daemon.am index b0a6d48873..fb662b1b14 100644 --- a/daemon.am +++ b/daemon.am @@ -20,7 +20,7 @@ # Integration of the `guix-daemon' code taken from upstream Nix. # -BUILT_SOURCES = nix/libstore/schema.sql.hh +BUILT_SOURCES += nix/libstore/schema.sql.hh CLEANFILES += $(BUILT_SOURCES) noinst_LIBRARIES = libformat.a libutil.a libstore.a diff --git a/doc.am b/doc.am index 6cbc35a8cc..67cd739fae 100644 --- a/doc.am +++ b/doc.am @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013 Ludovic Courtès +# Copyright © 2012, 2013, 2014 Ludovic Courtès # Copyright © 2013 Andreas Enge # # This file is part of GNU Guix. @@ -24,6 +24,15 @@ EXTRA_DIST += \ doc/images/bootstrap-graph.eps \ doc/images/bootstrap-graph.pdf +# Bundle this file so that makeinfo finds it in out-of-source-tree builds. +BUILT_SOURCES += doc/os-config.texi +EXTRA_DIST += doc/os-config.texi +MAINTAINERCLEANFILES = doc/os-config.texi + +doc/os-config.texi: gnu/system/os-config.tmpl + $(MKDIR_P) "`dirname "$@"`" + cp "$<" "$@" + infoimagedir = $(infodir)/images dist_infoimage_DATA = doc/images/bootstrap-graph.png diff --git a/doc/guix.texi b/doc/guix.texi index 6b9e87018f..2060da9c55 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2856,7 +2856,7 @@ only a root account would look like this (on the installation system, this example is available as @file{/etc/configuration-template.scm}): @example -@include gnu/system/os-config.tmpl +@include os-config.texi @end example @noindent From c8fa34265d6612c99fe80adfaa66edaddd4d5b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:12:35 +0200 Subject: [PATCH 50/75] system: Add the 'system?' field for user groups. Suggested by Mark H. Weaver. * gnu/system/shadow.scm ()[system?]: New field. (%base-groups): Introduce 'system-group' macro, and use it. * gnu/system.scm (user-group->gexp): Pass the 'system?' field. * guix/build/activation.scm (add-group): Add #:system? and honor it. (activate-users+groups): Handle the 'system?' field. * gnu/system/file-systems.scm (%tty-gid): Choose an ID below 1000. * doc/guix.texi (User Accounts): Document the 'system?' field. --- doc/guix.texi | 4 ++++ gnu/system.scm | 3 ++- gnu/system/file-systems.scm | 2 +- gnu/system/shadow.scm | 42 +++++++++++++++++++++---------------- guix/build/activation.scm | 9 +++++--- 5 files changed, 37 insertions(+), 23 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2060da9c55..cef2aba9a8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3201,6 +3201,10 @@ The group's name. The group identifier (a number). If @code{#f}, a new number is automatically allocated when the group is created. +@item @code{system?} (default: @code{#f}) +This Boolean value indicates whether the group is a ``system'' group. +System groups have low numerical IDs. + @item @code{password} (default: @code{#f}) What, user groups can have a password? Well, apparently yes. Unless @code{#f}, this field specifies the group's password. diff --git a/gnu/system.scm b/gnu/system.scm index 4648d810a3..68f9438693 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -363,7 +363,8 @@ alias ll='ls -l' 'active-groups'." #~(list #$(user-group-name group) #$(user-group-password group) - #$(user-group-id group))) + #$(user-group-id group) + #$(user-group-system? group))) (define (user-account->gexp account) "Turn ACCOUNT, a object, into a list-valued gexp suitable for diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 3b13d820cf..48c4fc7e77 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -95,7 +95,7 @@ (define %tty-gid ;; ID of the 'tty' group. Allocate it statically to make it easy to refer ;; to it from here and from the 'tty' group definitions. - 1004) + 996) (define %pseudo-terminal-file-system ;; The pseudo-terminal file system. It needs to be mounted so that diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index e29dbb8c3e..5d638398d1 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -43,6 +43,7 @@ user-group-name user-group-password user-group-id + user-group-system? default-skeletons skeleton-directory @@ -75,28 +76,33 @@ user-group? (name user-group-name) (password user-group-password (default #f)) - (id user-group-id (default #f))) + (id user-group-id (default #f)) + (system? user-group-system? ; Boolean + (default #f))) (define %base-groups ;; Default set of groups. - (list (user-group (name "root") (id 0)) - (user-group (name "wheel")) ; root-like users - (user-group (name "users")) ; normal users - (user-group (name "nogroup")) ; for daemons etc. + (let-syntax ((system-group (syntax-rules () + ((_ args ...) + (user-group (system? #t) args ...))))) + (list (system-group (name "root") (id 0)) + (system-group (name "wheel")) ; root-like users + (system-group (name "users")) ; normal users + (system-group (name "nogroup")) ; for daemons etc. - ;; The following groups are conventionally used by things like udev to - ;; control access to hardware devices. - (user-group (name "tty") (id %tty-gid)) - (user-group (name "dialout")) - (user-group (name "kmem")) - (user-group (name "video")) - (user-group (name "audio")) - (user-group (name "netdev")) ; used in avahi-dbus.conf - (user-group (name "lp")) - (user-group (name "disk")) - (user-group (name "floppy")) - (user-group (name "cdrom")) - (user-group (name "tape")))) + ;; The following groups are conventionally used by things like udev to + ;; control access to hardware devices. + (system-group (name "tty") (id %tty-gid)) + (system-group (name "dialout")) + (system-group (name "kmem")) + (system-group (name "video")) + (system-group (name "audio")) + (system-group (name "netdev")) ; used in avahi-dbus.conf + (system-group (name "lp")) + (system-group (name "disk")) + (system-group (name "floppy")) + (system-group (name "cdrom")) + (system-group (name "tape"))))) (define (default-skeletons) "Return the default skeleton files for /etc/skel. These files are copied by diff --git a/guix/build/activation.scm b/guix/build/activation.scm index 9464d2157d..b04b017881 100644 --- a/guix/build/activation.scm +++ b/guix/build/activation.scm @@ -36,13 +36,14 @@ ;;; ;;; Code: -(define* (add-group name #:key gid password +(define* (add-group name #:key gid password system? (log-port (current-error-port))) "Add NAME as a user group, with the given numeric GID if specified." ;; Use 'groupadd' from the Shadow package. (format log-port "adding group '~a'...~%" name) (let ((args `(,@(if gid `("-g" ,(number->string gid)) '()) ,@(if password `("-p" ,password) '()) + ,@(if system? `("--system") '()) ,name))) (zero? (apply system* "groupadd" args)))) @@ -128,9 +129,11 @@ numeric gid or #f." ;; Then create the groups. (for-each (match-lambda - ((name password gid) + ((name password gid system?) (unless (false-if-exception (getgrnam name)) - (add-group name #:gid gid #:password password)))) + (add-group name + #:gid gid #:password password + #:system? system?)))) groups) ;; Finally create the other user accounts. From 417175096aef38c6a72acbbcfdba636c723ab79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:15:46 +0200 Subject: [PATCH 51/75] services: Use system groups where applicable. * gnu/services/avahi.scm (avahi-service): Add 'system?' field to 'user-group' form. * gnu/services/base.scm (guix-service): Likewise. * gnu/services/dbus.scm (dbus-service): Likewise. * gnu/services/networking.scm (tor-service): Likewise. --- gnu/services/avahi.scm | 3 ++- gnu/services/base.scm | 1 + gnu/services/dbus.scm | 3 ++- gnu/services/networking.scm | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm index e8da6be5f5..48a2c75927 100644 --- a/gnu/services/avahi.scm +++ b/gnu/services/avahi.scm @@ -96,7 +96,8 @@ sockets." (mkdir-p "/var/run/avahi-daemon"))) (user-groups (list (user-group - (name "avahi")))) + (name "avahi") + (system? #t)))) (user-accounts (list (user-account (name "avahi") (group "avahi") diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 342b3c1488..e1d247e8d3 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -472,6 +472,7 @@ passed to @command{guix-daemon}." (user-accounts accounts) (user-groups (list (user-group (name builder-group) + (system? #t) ;; Use a fixed GID so that we can create the ;; store with the right owner. diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 6076317ee5..5da7f14605 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -86,7 +86,8 @@ and policy files. For example, to allow avahi-daemon to use the system bus, (string-append "--config-file=" #$conf "/system.conf")))) (stop #~(make-kill-destructor)) (user-groups (list (user-group - (name "messagebus")))) + (name "messagebus") + (system? #t)))) (user-accounts (list (user-account (name "messagebus") (group "messagebus") diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 502b0d85f1..6a7d194659 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -107,7 +107,8 @@ policy) as the @code{tor} unprivileged user." (stop #~(make-kill-destructor)) (user-groups (list (user-group - (name "tor")))) + (name "tor") + (system? #t)))) (user-accounts (list (user-account (name "tor") (group "tor") From 6c9e7b2bea834e311938db79a815a48cab36e986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:26:29 +0200 Subject: [PATCH 52/75] build: Better reject systems where the shebang would be too long. * tests/gexp.scm (shebang): Add "#!". --- tests/gexp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/gexp.scm b/tests/gexp.scm index 6d4885e44e..bdea4b8563 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -224,7 +224,7 @@ (return (string=? system (derivation-system drv)))))) (define shebang - (string-append (derivation->output-path guile-for-build) + (string-append "#!" (derivation->output-path guile-for-build) "/bin/guile --no-auto-compile")) ;; If we're going to hit the silly shebang limit (128 chars on Linux-based From 3ce9aa44f139a4a4c80ba9468b7f738b93782e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:26:55 +0200 Subject: [PATCH 53/75] build: Fix typo in 'guix package --show' test. * tests/guix-package.sh: Change "^Package:" to "^name:". --- tests/guix-package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 6b99275240..99debb936b 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -177,7 +177,7 @@ then false; else true; fi guix package -p "$profile" -A 'gui.*e' | grep guile # Check whether `--show' returns something sensible. -guix package --show=guile | grep "^Package: guile" +guix package --show=guile | grep "^name: guile" # There's no generation older than 12 months, so the following command should # have no effect. From 20ffce820bafd08ff51790436c3ee36a69c13423 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:29:47 +0200 Subject: [PATCH 54/75] ui: Improve formatting of package dependencies in recutils. * guix/ui.scm (package->recutils)[dependencies->recutils]: New procedure. Use it. --- guix/ui.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 74ea20e6c8..1b7d334757 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -453,6 +453,13 @@ WIDTH columns." (fill-paragraph str width (string-length "description: "))))) + (define (dependencies->recutils packages) + (let ((list (string-join (map package-full-name + (sort packages packagerecutils + (fill-paragraph list width + (string-length "dependencies: "))))) + (define (packagerecutils packages)))) (format port "location: ~a~%" (or (and=> (package-location p) location->string) (_ "unknown"))) From dccc0b98001d90736aee7bc7b8e7df3e40b2779a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:44:43 +0200 Subject: [PATCH 55/75] Update NEWS. --- NEWS | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 4dcffdd425..bf920e22ad 100644 --- a/NEWS +++ b/NEWS @@ -12,9 +12,8 @@ Please send Guix bug reports to bug-guix@gnu.org. * Changes in 0.7 (since 0.6) ** Package management -*** ‘guix refresh’ has a new ‘--list-dependent’ options - -See “Invoking guix refresh” in the manual. +*** ‘guix package’ has a new ‘--show’ option +*** ‘guix refresh’ has a new ‘--list-dependent’ option ** Programming interfaces *** New (guix gexp) module, which implements “G-expressions” @@ -62,8 +61,49 @@ See “Invoking guix system” in the manual. *** Virtual machine support uses para-virtualized devices *** GCC package now has an additional ‘lib’ output, for run-time support libs *** GLib package now has a separate “bin” output () -*** XXX new packages -*** XXX package updates +*** 134 new packages + +abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp, +chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat, +doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi, +fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice, +gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools, +jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui, +libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas, +libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt, +libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages, +maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl, +offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc, +petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf, +pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock, +python-parse, python-parse-type, python-parsedatetime, python-pycrypto, +python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode, +rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse, +strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy, +transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools, +wpa-supplicant, xboard, youtube-dl + +*** 87 package updates + +bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2, +docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6, +ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4, +gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3, +gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3, +gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1, +gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a, +gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20, +gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2, +guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3, +icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e, +libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37, +libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4, +linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6, +neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1, +pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2, +qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2, +screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22, +wdiff-1.2.2, xorriso-1.3.8, xterm-304 ** Native language support *** New translations: de (German), and hu (Hungarian) From 51af57102cf999210a19a8a5356aaf0832970a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 00:56:35 +0200 Subject: [PATCH 56/75] build: Update PO files as per 'make dist'. --- po/guix/de.po | 107 +++++----- po/guix/eo.po | 109 +++++----- po/guix/hu.po | 107 +++++----- po/guix/pt_BR.po | 278 +++++++++++++------------ po/guix/sr.po | 477 ++++++++++++++++++++++++------------------- po/guix/vi.po | 107 +++++----- po/packages/de.po | 2 +- po/packages/eo.po | 2 +- po/packages/pt_BR.po | 2 +- po/packages/sr.po | 2 +- po/packages/vi.po | 2 +- 11 files changed, 653 insertions(+), 542 deletions(-) diff --git a/po/guix/de.po b/po/guix/de.po index 4b24391c5b..185cb0d9e7 100644 --- a/po/guix/de.po +++ b/po/guix/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-07-13 17:06+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2014-07-13 20:38+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" @@ -18,7 +18,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.5.4\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "Zugriff auf »~a« nicht möglich: ~a~%" @@ -165,9 +165,9 @@ msgid "" msgstr "" #: guix/scripts/build.scm:246 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:523 guix/scripts/gc.scm:58 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:334 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -176,9 +176,9 @@ msgstr "" " -h, --help diese Hilfe anzeigen und beenden" #: guix/scripts/build.scm:248 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:525 guix/scripts/gc.scm:60 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:336 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -192,8 +192,8 @@ msgid "sources do not match any package:~{ ~a~}~%" msgstr "" #: guix/scripts/build.scm:397 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:756 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:386 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: nicht erkannte Option~%" @@ -244,8 +244,8 @@ msgstr "Leeres Profil konnte nicht erstellt werden~%" msgid "switching from generation ~a to ~a~%" msgstr "" -#: guix/scripts/package.scm:108 guix/scripts/package.scm:866 -#: guix/scripts/package.scm:978 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "Profil »~a« existiert nicht~%" @@ -399,62 +399,71 @@ msgid "" " list available packages matching REGEXP" msgstr "" -#: guix/scripts/package.scm:760 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=PAKET PAKET installieren" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "" -#: guix/scripts/package.scm:775 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "" -#: guix/scripts/package.scm:797 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "" -#: guix/scripts/package.scm:801 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "" -#: guix/scripts/package.scm:808 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "" -#: guix/scripts/package.scm:811 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "" -#: guix/scripts/package.scm:836 +#: guix/scripts/package.scm:843 #, scheme-format msgid "deleting ~a~%" msgstr "" -#: guix/scripts/package.scm:889 guix/scripts/package.scm:994 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "Unzulässige Syntax: ~a~%" -#: guix/scripts/package.scm:918 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "Nichts zu tun~%" -#: guix/scripts/package.scm:941 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "~a-Paket im Profil~%" -#: guix/scripts/package.scm:956 +#: guix/scripts/package.scm:963 #, scheme-format msgid "Generation ~a\t~a" msgstr "" -#: guix/scripts/package.scm:963 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(aktuell)~%" @@ -747,93 +756,93 @@ msgstr "~a: ~a~%" msgid "failed to load operating system file '~a': ~s~%" msgstr "" -#: guix/scripts/system.scm:111 +#: guix/scripts/system.scm:116 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "" -#: guix/scripts/system.scm:127 +#: guix/scripts/system.scm:144 #, scheme-format msgid "initializing the current root file system~%" msgstr "" -#: guix/scripts/system.scm:151 guix/scripts/system.scm:291 +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "" -#: guix/scripts/system.scm:176 +#: guix/scripts/system.scm:197 #, scheme-format msgid "activating system...~%" msgstr "System wird aktiviert …~%" -#: guix/scripts/system.scm:211 +#: guix/scripts/system.scm:236 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "Nicht erkannte Startparameter für »~a«~%" -#: guix/scripts/system.scm:295 +#: guix/scripts/system.scm:323 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "" -#: guix/scripts/system.scm:311 +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" msgstr "" -#: guix/scripts/system.scm:314 +#: guix/scripts/system.scm:342 msgid "The valid values for ACTION are:\n" msgstr "Die gültigen Werte für AKTION sind:\n" -#: guix/scripts/system.scm:315 +#: guix/scripts/system.scm:343 msgid " - 'reconfigure', switch to a new operating system configuration\n" msgstr "" -#: guix/scripts/system.scm:317 +#: guix/scripts/system.scm:345 msgid " - 'build', build the operating system without installing anything\n" msgstr "" -#: guix/scripts/system.scm:319 +#: guix/scripts/system.scm:347 msgid " - 'vm', build a virtual machine image that shares the host's store\n" msgstr "" -#: guix/scripts/system.scm:321 +#: guix/scripts/system.scm:349 msgid " - 'vm-image', build a freestanding virtual machine image\n" msgstr "" -#: guix/scripts/system.scm:323 +#: guix/scripts/system.scm:351 msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" msgstr "" -#: guix/scripts/system.scm:325 +#: guix/scripts/system.scm:353 msgid " - 'init', initialize a root file system to run GNU.\n" msgstr "" -#: guix/scripts/system.scm:329 +#: guix/scripts/system.scm:357 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" msgstr "" -#: guix/scripts/system.scm:331 +#: guix/scripts/system.scm:359 msgid "" "\n" " --no-grub for 'init', do not install GRUB" msgstr "" -#: guix/scripts/system.scm:394 +#: guix/scripts/system.scm:422 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: unbekannte Aktion~%" -#: guix/scripts/system.scm:411 +#: guix/scripts/system.scm:439 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "Falsche Anzahl an Argumenten für Aktion »~a«~%" -#: guix/scripts/system.scm:431 +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "Keine Konfigurationsdatei angegeben~%" @@ -976,21 +985,21 @@ msgstr "" msgid "failed to create configuration directory `~a': ~a~%" msgstr "Konfigurationsverzeichnis »~a« konnte nicht angelegt werden: ~a~%" -#: guix/ui.scm:461 guix/ui.scm:475 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "unbekannt" -#: guix/ui.scm:584 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "Ungültiges Argument: ~a~%" -#: guix/ui.scm:589 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Rufen Sie »guix --help« auf, um weitere Informationen zu erhalten.~%" -#: guix/ui.scm:619 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -998,21 +1007,21 @@ msgstr "" "Aufruf: guix BEFEHL ARGUMENTE …\n" "BEFEHL mit ARGUMENTEN ausführen.\n" -#: guix/ui.scm:622 +#: guix/ui.scm:636 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:642 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: Befehl nicht gefunden~%" -#: guix/ui.scm:660 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: Befehlsname fehlt~%" -#: guix/ui.scm:668 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: nicht erkannte Option »~a«~%" diff --git a/po/guix/eo.po b/po/guix/eo.po index ec64cc8ef1..cffc546dc1 100644 --- a/po/guix/eo.po +++ b/po/guix/eo.po @@ -7,17 +7,17 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-07-13 17:06+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2014-07-14 11:29-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" -"Language: Esperanto\n" +"Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "ne eblas atingi '~a': ~a~%" @@ -203,9 +203,9 @@ msgstr "" " --log-file liveri la protokol-dosierajn nomojn por la indikitaj derivaĵoj" #: guix/scripts/build.scm:246 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:523 guix/scripts/gc.scm:58 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:334 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -214,9 +214,9 @@ msgstr "" " -h, --help montri ĉi tiun helpon kaj eliri" #: guix/scripts/build.scm:248 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:525 guix/scripts/gc.scm:60 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:336 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -230,8 +230,8 @@ msgid "sources do not match any package:~{ ~a~}~%" msgstr "fontoj ne kongruas al iu ajn pako:~{ ~a~}~%" #: guix/scripts/build.scm:397 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:756 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:386 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: nerekonata modifilo~%" @@ -290,8 +290,8 @@ msgstr "fiasko dum konstruo de malplena profilo~%" msgid "switching from generation ~a to ~a~%" msgstr "alterno el generacio ~a al ~a~%" -#: guix/scripts/package.scm:108 guix/scripts/package.scm:866 -#: guix/scripts/package.scm:978 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "profilo '~a' ne ekzistas~%" @@ -476,62 +476,71 @@ msgstr "" " -A, --list-available[=REGESP]\n" " listigi disponeblajn pakojn kongruantajn al REGESP" -#: guix/scripts/package.scm:760 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=PAKO instali PAKOn" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: fremda argumento~%" -#: guix/scripts/package.scm:775 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Provu \"info '(guix) Invoking guix package'\" por pli da informo.'%" -#: guix/scripts/package.scm:797 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "eraro: dum kreo de dosierujo '~a': ~a~%" -#: guix/scripts/package.scm:801 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Bonvolu krei la dosierujon '~a', kun vi kiel posedanto.~%" -#: guix/scripts/package.scm:808 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "eraro: dosierujo '~a' ne estas posedata de vi~%" -#: guix/scripts/package.scm:811 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Bonvole ŝanĝu la posedanton de '~a' al la uzanto ~s.~%" -#: guix/scripts/package.scm:836 +#: guix/scripts/package.scm:843 #, scheme-format msgid "deleting ~a~%" msgstr "ni forigas ~a~%" -#: guix/scripts/package.scm:889 guix/scripts/package.scm:994 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "malvalida sintakso: ~a~%" -#: guix/scripts/package.scm:918 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "nenio por fari~%" -#: guix/scripts/package.scm:941 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "pako ~a en profilo~%" -#: guix/scripts/package.scm:956 +#: guix/scripts/package.scm:963 #, scheme-format msgid "Generation ~a\t~a" msgstr "Generacio ~a\t~a" -#: guix/scripts/package.scm:963 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(nuna)~%" @@ -864,37 +873,37 @@ msgstr "~a: ~a~%" msgid "failed to load operating system file '~a': ~s~%" msgstr "fiasko dum ŝargo je operaci-sistema dosiero '~a': ~s~%" -#: guix/scripts/system.scm:111 +#: guix/scripts/system.scm:116 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "fiasko dum registro de '~a' sub '~a'~%" -#: guix/scripts/system.scm:127 +#: guix/scripts/system.scm:144 #, scheme-format msgid "initializing the current root file system~%" msgstr "ekigado de la nuna radika dosiersistemo~%" -#: guix/scripts/system.scm:151 guix/scripts/system.scm:291 +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "fiasko dum instalo de GRUB en la aparato '~a'~%" -#: guix/scripts/system.scm:176 +#: guix/scripts/system.scm:197 #, scheme-format msgid "activating system...~%" msgstr "ni aktivas la sistemon...~%" -#: guix/scripts/system.scm:211 +#: guix/scripts/system.scm:236 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "nerekonataj ekŝargaj parametroj por '~a'~%" -#: guix/scripts/system.scm:295 +#: guix/scripts/system.scm:323 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "ni ekigas la operaci-sistemon sub '~a'...~%" -#: guix/scripts/system.scm:311 +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -902,35 +911,35 @@ msgstr "" "Uzmaniero: guix system [MODIFILO] AGO DOSIERO\n" "Konstrui la operaci-sistemon deklarita en DOSIERO akorde al AGO.\n" -#: guix/scripts/system.scm:314 +#: guix/scripts/system.scm:342 msgid "The valid values for ACTION are:\n" msgstr "La validaj valoroj por AGO estas:\n" -#: guix/scripts/system.scm:315 +#: guix/scripts/system.scm:343 msgid " - 'reconfigure', switch to a new operating system configuration\n" msgstr " - 'reconfigure', alterni al nova operaci-sistema agordaro\n" -#: guix/scripts/system.scm:317 +#: guix/scripts/system.scm:345 msgid " - 'build', build the operating system without installing anything\n" msgstr " - 'build', konstrui la operaci-sistemon sen instali ion ajn\n" -#: guix/scripts/system.scm:319 +#: guix/scripts/system.scm:347 msgid " - 'vm', build a virtual machine image that shares the host's store\n" msgstr " - 'vm', konstrui virtual-maŝinan bildon kiu kundividas la gastigantan memoron\n" -#: guix/scripts/system.scm:321 +#: guix/scripts/system.scm:349 msgid " - 'vm-image', build a freestanding virtual machine image\n" msgstr " - 'vm-image', konstrui memstaran virtual-maŝinan bildon\n" -#: guix/scripts/system.scm:323 +#: guix/scripts/system.scm:351 msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" msgstr " - 'disk-image', konstrui disk-bildon, taŭga por USB-memoro\n" -#: guix/scripts/system.scm:325 +#: guix/scripts/system.scm:353 msgid " - 'init', initialize a root file system to run GNU.\n" msgstr " - 'init', ekigi radikan dosiersistemon por lanĉi GNU-on.\n" -#: guix/scripts/system.scm:329 +#: guix/scripts/system.scm:357 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -938,7 +947,7 @@ msgstr "" "\n" " --image-size=GRANDO por 'vm-image', produkti bildon je GRANDO" -#: guix/scripts/system.scm:331 +#: guix/scripts/system.scm:359 msgid "" "\n" " --no-grub for 'init', do not install GRUB" @@ -946,17 +955,17 @@ msgstr "" "\n" " --no-grub por 'init', ne instali GRUB" -#: guix/scripts/system.scm:394 +#: guix/scripts/system.scm:422 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: nekonata pako~%" -#: guix/scripts/system.scm:411 +#: guix/scripts/system.scm:439 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "malĝusta nombro da argumentoj por la ago '~a'~%" -#: guix/scripts/system.scm:431 +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "neniu agorda dosiero estis indikata~%" @@ -1103,21 +1112,21 @@ msgstr "" msgid "failed to create configuration directory `~a': ~a~%" msgstr "fiasko dum kreo de agorda dosierujo '~a': ~a~%" -#: guix/ui.scm:461 guix/ui.scm:475 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "nekonata" -#: guix/ui.scm:584 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "malvalida argumento: ~a~%" -#: guix/ui.scm:589 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Provu 'guix --help' por pli da informo.~%" -#: guix/ui.scm:619 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1125,21 +1134,21 @@ msgstr "" "Uzmaniero: guix KOMANDO ARGj...\n" "Lanĉas KOMANDOn kun ARGj.\n" -#: guix/ui.scm:622 +#: guix/ui.scm:636 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "KOMANDO devas esti unu el la sub-komandoj sube listataj:\n" -#: guix/ui.scm:642 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: komando ne trovita~%" -#: guix/ui.scm:660 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: mankas komanda nomo~%" -#: guix/ui.scm:668 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: nerekonata modifilo: '~a'~%" diff --git a/po/guix/hu.po b/po/guix/hu.po index 5e3133fea0..33b42f71dc 100644 --- a/po/guix/hu.po +++ b/po/guix/hu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-07-13 17:06+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2014-07-18 17:37+0200\n" "Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" @@ -18,7 +18,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "nem sikerült elérni: „~a”: ~a~%" @@ -215,9 +215,9 @@ msgstr "" " --log-file a megadott származékok naplófájl-neveinek visszaadása" #: guix/scripts/build.scm:246 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:523 guix/scripts/gc.scm:58 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:334 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -226,9 +226,9 @@ msgstr "" " -h, --help ezen súgó megjelenítése és kilépés" #: guix/scripts/build.scm:248 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:525 guix/scripts/gc.scm:60 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:336 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -242,8 +242,8 @@ msgid "sources do not match any package:~{ ~a~}~%" msgstr "a források nem illeszkednek semmilyen csomagra:~{ ~a~}~%" #: guix/scripts/build.scm:397 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:756 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:386 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: ismeretlen kapcsoló~%" @@ -302,8 +302,8 @@ msgstr "az üres profil összeállítása sikertelen~%" msgid "switching from generation ~a to ~a~%" msgstr "átváltás a(z) ~a generációról erre: ~a~%" -#: guix/scripts/package.scm:108 guix/scripts/package.scm:866 -#: guix/scripts/package.scm:978 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "a(z) „~a” profil nem létezik~%" @@ -493,64 +493,73 @@ msgstr "" " -A, --list-available[=REGKIF]\n" " a REGKIF-re illeszkedő elérhető csomagok listázása" -#: guix/scripts/package.scm:760 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=CSOMAG CSOMAG telepítése" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: nem odatartozó argumentum~%" -#: guix/scripts/package.scm:775 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "" "További információkért próbálja az „info '(guix) Invoking guix package'”\n" "parancsot.~%" -#: guix/scripts/package.scm:797 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "hiba: a(z) „~a” könyvtár létrehozása közben: ~a~%" -#: guix/scripts/package.scm:801 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Hozza létre a(z) „~a” könyvtárat az ön nevében, tulajdonosként.~%" -#: guix/scripts/package.scm:808 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "hiba: a(z) „~a” könyvtárnak nem ön a tulajdonosa~%" -#: guix/scripts/package.scm:811 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Változtassa meg a(z) „~a” tulajdonosát erre a felhasználóra: ~s.~%" -#: guix/scripts/package.scm:836 +#: guix/scripts/package.scm:843 #, scheme-format msgid "deleting ~a~%" msgstr "~a törlése~%" -#: guix/scripts/package.scm:889 guix/scripts/package.scm:994 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "érvénytelen szintaxis: ~a~%" -#: guix/scripts/package.scm:918 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "nincs mit tenni~%" -#: guix/scripts/package.scm:941 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "~a csomag a profilban~%" -#: guix/scripts/package.scm:956 +#: guix/scripts/package.scm:963 #, scheme-format msgid "Generation ~a\t~a" msgstr "~a generáció\t~a" -#: guix/scripts/package.scm:963 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(jelenlegi)~%" @@ -887,37 +896,37 @@ msgstr "~a: ~a~%" msgid "failed to load operating system file '~a': ~s~%" msgstr "a(z) „~a” operációs rendszer fájl betöltése sikertelen: ~s~%" -#: guix/scripts/system.scm:111 +#: guix/scripts/system.scm:116 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "a(z) „~a” regisztrálása sikertelen ez alá: „~a”~%" -#: guix/scripts/system.scm:127 +#: guix/scripts/system.scm:144 #, scheme-format msgid "initializing the current root file system~%" msgstr "a jelenlegi gyökér fájlrendszer előkészítése~%" -#: guix/scripts/system.scm:151 guix/scripts/system.scm:291 +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "a GRUB telepítése sikertelen a(z) „~a” eszközre~%" -#: guix/scripts/system.scm:176 +#: guix/scripts/system.scm:197 #, scheme-format msgid "activating system...~%" msgstr "a rendszer aktiválása…~%" -#: guix/scripts/system.scm:211 +#: guix/scripts/system.scm:236 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "azonosítatlan indítási paraméterek ehhez: „~a”~%" -#: guix/scripts/system.scm:295 +#: guix/scripts/system.scm:323 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "az operációs rendszer előkészítése „~a” alá…~%" -#: guix/scripts/system.scm:311 +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -925,37 +934,37 @@ msgstr "" "Használat: guix system [KAPCSOLÓ] MŰVELET FÁJL\n" "A FÁJLBAN meghatározott operációs rendszer összeállítása a MŰVELET szerint.\n" -#: guix/scripts/system.scm:314 +#: guix/scripts/system.scm:342 msgid "The valid values for ACTION are:\n" msgstr "A MŰVELET érvényes értékei a következők:\n" -#: guix/scripts/system.scm:315 +#: guix/scripts/system.scm:343 msgid " - 'reconfigure', switch to a new operating system configuration\n" msgstr " - „reconfigure”, átváltás egy új operációs rendszer beállításra\n" -#: guix/scripts/system.scm:317 +#: guix/scripts/system.scm:345 msgid " - 'build', build the operating system without installing anything\n" msgstr " - „build”, az operációs rendszer összeállítása bármi telepítése nélkül\n" -#: guix/scripts/system.scm:319 +#: guix/scripts/system.scm:347 msgid " - 'vm', build a virtual machine image that shares the host's store\n" msgstr "" " - „vm”, egy virtuális gép lemezkép összeállítása, amely megosztja a gazda\n" " tárolóját\n" -#: guix/scripts/system.scm:321 +#: guix/scripts/system.scm:349 msgid " - 'vm-image', build a freestanding virtual machine image\n" msgstr " - „vm-image”, egy szabadon álló virtuális gép lemezkép összeállítása\n" -#: guix/scripts/system.scm:323 +#: guix/scripts/system.scm:351 msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" msgstr " - „disk-image”, egy USB-meghajtóhoz megfelelő lemezkép összeállítása\n" -#: guix/scripts/system.scm:325 +#: guix/scripts/system.scm:353 msgid " - 'init', initialize a root file system to run GNU.\n" msgstr " - „init”, a gyökér fájlrendszer előkészítése a GNU futtatásához.\n" -#: guix/scripts/system.scm:329 +#: guix/scripts/system.scm:357 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -963,7 +972,7 @@ msgstr "" "\n" " --image-size=MÉRET a „vm-image”-hez, adott MÉRETŰ lemezkép előállítása" -#: guix/scripts/system.scm:331 +#: guix/scripts/system.scm:359 msgid "" "\n" " --no-grub for 'init', do not install GRUB" @@ -971,17 +980,17 @@ msgstr "" "\n" " --no-grub az „init”-hez, ne telepítse a GRUB rendszerbetöltőt" -#: guix/scripts/system.scm:394 +#: guix/scripts/system.scm:422 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: ismeretlen művelet~%" -#: guix/scripts/system.scm:411 +#: guix/scripts/system.scm:439 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "nem megfelelő számú argumentum a(z) „~a” művelethez~%" -#: guix/scripts/system.scm:431 +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "nincs beállítófájl megadva~%" @@ -1129,21 +1138,21 @@ msgstr "" msgid "failed to create configuration directory `~a': ~a~%" msgstr "a(z) „~a” beállítási könyvtár létrehozása sikertelen: ~a~%" -#: guix/ui.scm:461 guix/ui.scm:475 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "ismeretlen" -#: guix/ui.scm:584 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "érvénytelen argumentum: ~a~%" -#: guix/ui.scm:589 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "További információkért próbálja a „guix --help” parancsot.~%" -#: guix/ui.scm:619 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1151,21 +1160,21 @@ msgstr "" "Használat: guix PARANCS ARGUMENTUMOK…\n" "A PARANCS futtatása ARGUMENTUMOKKAL.\n" -#: guix/ui.scm:622 +#: guix/ui.scm:636 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "A PARANCSNAK a lenti listában lévő alparancsok egyikének kell lennie:\n" -#: guix/ui.scm:642 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: a parancs nem található~%" -#: guix/ui.scm:660 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: hiányzó parancsnév~%" -#: guix/ui.scm:668 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: ismeretlen kapcsoló: „~a”~%" diff --git a/po/guix/pt_BR.po b/po/guix/pt_BR.po index 5b41026db6..664cf249ad 100644 --- a/po/guix/pt_BR.po +++ b/po/guix/pt_BR.po @@ -8,11 +8,10 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.4-pre2\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-14 22:38+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2013-09-28 21:29-0300\n" "Last-Translator: Rafael Ferreira \n" -"Language-Team: Brazilian Portuguese \n" +"Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,17 +19,17 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 1.5.7\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "não foi possível acessar \"~a\": ~a~%" -#: guix/scripts/build.scm:54 guix/scripts/package.scm:337 +#: guix/scripts/build.scm:54 guix/scripts/package.scm:349 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "especificação ambígua de pacote \"~a\"~%" -#: guix/scripts/build.scm:55 guix/scripts/package.scm:339 +#: guix/scripts/build.scm:55 guix/scripts/package.scm:351 #, scheme-format msgid "choosing ~a from ~a~%" msgstr "escolhendo ~a de ~a~%" @@ -97,8 +96,7 @@ msgid "" msgstr "" "\n" " --max-silent-time=SEGUNDOS\n" -" marca compilação como falha após SEGUNDOS de " -"silêncio" +" marca compilação como falha após SEGUNDOS de silêncio" #: guix/scripts/build.scm:136 #, fuzzy @@ -108,8 +106,7 @@ msgid "" msgstr "" "\n" " --max-silent-time=SEGUNDOS\n" -" marca compilação como falha após SEGUNDOS de " -"silêncio" +" marca compilação como falha após SEGUNDOS de silêncio" #: guix/scripts/build.scm:138 msgid "" @@ -125,8 +122,7 @@ msgid "" " -c, --cores=N allow the use of up to N CPU cores for the build" msgstr "" "\n" -" -c, --cores=N permite o uso de até N núcleos de CPU para " -"compilação" +" -c, --cores=N permite o uso de até N núcleos de CPU para compilação" #: guix/scripts/build.scm:206 #, scheme-format @@ -172,8 +168,7 @@ msgid "" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" msgstr "" "\n" -" --target=TRIO compilação cruzada para TRIO. ex.: \"armel-linux-gnu" -"\"" +" --target=TRIO compilação cruzada para TRIO. ex.: \"armel-linux-gnu\"" #: guix/scripts/build.scm:233 msgid "" @@ -197,8 +192,7 @@ msgid "" " as a garbage collector root" msgstr "" "\n" -" -r, --root=ARQUIVO faz do ARQUIVO um link simbólico para o resultado " -"e\n" +" -r, --root=ARQUIVO faz do ARQUIVO um link simbólico para o resultado e\n" " registra-o, como um coletor de lixo" #: guix/scripts/build.scm:241 @@ -208,9 +202,9 @@ msgid "" msgstr "" #: guix/scripts/build.scm:246 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:511 guix/scripts/gc.scm:58 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:142 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -219,9 +213,9 @@ msgstr "" " -h, --help exibe esta ajuda e sai" #: guix/scripts/build.scm:248 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:513 guix/scripts/gc.scm:60 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:144 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -235,8 +229,8 @@ msgid "sources do not match any package:~{ ~a~}~%" msgstr "" #: guix/scripts/build.scm:397 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:744 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:190 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: opção desconhecida~%" @@ -285,75 +279,74 @@ msgstr "~a: falha ao analisar URI~%" msgid "~a: download failed~%" msgstr "~a: falha no download~%" -#: guix/scripts/package.scm:76 +#: guix/scripts/package.scm:88 #, scheme-format msgid "failed to build the empty profile~%" msgstr "falha ao compilar o perfil vazio~%" # geração, criação? -#: guix/scripts/package.scm:85 +#: guix/scripts/package.scm:97 #, scheme-format msgid "switching from generation ~a to ~a~%" msgstr "trocando para geração de ~a para ~a~%" -#: guix/scripts/package.scm:96 guix/scripts/package.scm:852 -#: guix/scripts/package.scm:964 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "perfil \"~a\" não existe~%" -#: guix/scripts/package.scm:100 +#: guix/scripts/package.scm:112 #, scheme-format msgid "nothing to do: already at the empty profile~%" msgstr "nada a ser feito: já está no perfil vazio~%" -#: guix/scripts/package.scm:185 +#: guix/scripts/package.scm:197 #, fuzzy, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgstr "O seguinte pacote seria removido:~% ~{~a~%~}~%" -#: guix/scripts/package.scm:190 +#: guix/scripts/package.scm:202 #, fuzzy, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgstr "O seguinte pacote será removido:~% ~{~a~%~}~%" -#: guix/scripts/package.scm:202 +#: guix/scripts/package.scm:214 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgstr "O seguinte pacote seria instalado:~%~{~a~%~}~%" -#: guix/scripts/package.scm:207 +#: guix/scripts/package.scm:219 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgstr "O seguinte pacote será instalado:~%~{~a~%~}~%" -#: guix/scripts/package.scm:327 +#: guix/scripts/package.scm:339 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "pacote \"~a\" carece de mensagem de saída \"~a\"~%" -#: guix/scripts/package.scm:344 +#: guix/scripts/package.scm:356 #, scheme-format msgid "~a: package not found~%" msgstr "~a: pacote não encontrado~%" -#: guix/scripts/package.scm:379 +#: guix/scripts/package.scm:391 #, scheme-format msgid "looking for the latest release of GNU ~a..." msgstr "procurando pelo último lançamento do GNU ~a..." -#: guix/scripts/package.scm:383 +#: guix/scripts/package.scm:395 #, scheme-format msgid "~a: note: using ~a but ~a is available upstream~%" msgstr "~a: nota: usando ~a, mas ~a está disponível no upstream~%" -#: guix/scripts/package.scm:455 +#: guix/scripts/package.scm:467 #, scheme-format msgid "The following environment variable definitions may be needed:~%" -msgstr "" -"As seguintes definições de variável de ambiente podem ser necessárias:~%" +msgstr "As seguintes definições de variável de ambiente podem ser necessárias:~%" -#: guix/scripts/package.scm:471 +#: guix/scripts/package.scm:483 msgid "" "Usage: guix package [OPTION]... PACKAGES...\n" "Install, remove, or upgrade PACKAGES in a single transaction.\n" @@ -361,7 +354,7 @@ msgstr "" "Uso: guix package [OPÇÃO]... PACOTES...\n" "Instala, remove ou atualiza PACOTES em uma única transação.\n" -#: guix/scripts/package.scm:473 +#: guix/scripts/package.scm:485 msgid "" "\n" " -i, --install=PACKAGE install PACKAGE" @@ -369,7 +362,7 @@ msgstr "" "\n" " -i, --install=PACOTE instala PACOTE" -#: guix/scripts/package.scm:475 +#: guix/scripts/package.scm:487 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -379,7 +372,7 @@ msgstr "" " -e, --install-from-expression=EXP\n" " instala o pacote que EXPR corresponder" -#: guix/scripts/package.scm:478 +#: guix/scripts/package.scm:490 msgid "" "\n" " -r, --remove=PACKAGE remove PACKAGE" @@ -387,17 +380,16 @@ msgstr "" "\n" " -r, --remove=PACOTE remove PACOTE" -#: guix/scripts/package.scm:480 +#: guix/scripts/package.scm:492 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" msgstr "" "\n" -" -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados " -"correspondendo\n" +" -u, --upgrade[=REGEXP] atualiza todos os pacotes instalados correspondendo\n" " à REGEXP" -#: guix/scripts/package.scm:482 +#: guix/scripts/package.scm:494 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -405,7 +397,7 @@ msgstr "" "\n" " --roll-back Reverte para a geração anterior" -#: guix/scripts/package.scm:484 +#: guix/scripts/package.scm:496 msgid "" "\n" " --search-paths display needed environment variable definitions" @@ -413,7 +405,7 @@ msgstr "" "\n" " --search-paths exibe definições necessárias de variável de ambiente" -#: guix/scripts/package.scm:486 +#: guix/scripts/package.scm:498 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -423,7 +415,7 @@ msgstr "" " -I, --list-generations[=PADRÃO]\n" " lista criações correspondendo ao PADRÃO" -#: guix/scripts/package.scm:489 +#: guix/scripts/package.scm:501 #, fuzzy msgid "" "\n" @@ -434,7 +426,7 @@ msgstr "" " -I, --list-generations[=PADRÃO]\n" " lista criações correspondendo ao PADRÃO" -#: guix/scripts/package.scm:492 +#: guix/scripts/package.scm:504 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -442,7 +434,7 @@ msgstr "" "\n" " -p, --profile=PERFIL usa PERFIL em vez do perfil padrão do usuário" -#: guix/scripts/package.scm:495 +#: guix/scripts/package.scm:507 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -450,7 +442,7 @@ msgstr "" "\n" " --bootstrap usa a inicialização do Guile para compilar o perfil" -#: guix/scripts/package.scm:497 guix/scripts/pull.scm:75 +#: guix/scripts/package.scm:509 guix/scripts/pull.scm:75 msgid "" "\n" " --verbose produce verbose output" @@ -458,7 +450,7 @@ msgstr "" "\n" " --verbose produz uma saída mais detalhada" -#: guix/scripts/package.scm:500 +#: guix/scripts/package.scm:512 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -466,7 +458,7 @@ msgstr "" "\n" " -s, --search=REGEXP pesquisa na sinopse e descrição usando REGEXP" -#: guix/scripts/package.scm:502 +#: guix/scripts/package.scm:514 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -476,7 +468,7 @@ msgstr "" " -I, --list-installed[=REGEXP]\n" " lista pacotes instalados correspondentes a REGEXP" -#: guix/scripts/package.scm:505 +#: guix/scripts/package.scm:517 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -486,62 +478,71 @@ msgstr "" " -A, --list-available[=REGEXP]\n" " lista pacotes disponíveis correspondentes a REGEXP" -#: guix/scripts/package.scm:748 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=PACOTE instala PACOTE" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: argumento estranho~%" -#: guix/scripts/package.scm:763 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Tente \"info '(guix) Invoking guix package'\" para mais informações.~%" -#: guix/scripts/package.scm:785 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "erro: ao criar diretório \"~a\": ~a~%" -#: guix/scripts/package.scm:789 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Por favor, crie o diretório \"~a\", com você sendo o proprietário.~%" -#: guix/scripts/package.scm:796 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "erro: diretório \"~a\" não tem você como proprietário~%" -#: guix/scripts/package.scm:799 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Por favor, altere o proprietário d \"~a\" para o usuário ~s.~%" -#: guix/scripts/package.scm:822 +#: guix/scripts/package.scm:843 #, fuzzy, scheme-format msgid "deleting ~a~%" msgstr "Criação ~a\t~a~%" -#: guix/scripts/package.scm:875 guix/scripts/package.scm:980 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "sintaxe inválida: ~a~%" -#: guix/scripts/package.scm:904 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "nada para ser feito~%" -#: guix/scripts/package.scm:927 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "pacote ~a no perfil~%" -#: guix/scripts/package.scm:942 +#: guix/scripts/package.scm:963 #, fuzzy, scheme-format msgid "Generation ~a\t~a" msgstr "Criação ~a\t~a~%" -#: guix/scripts/package.scm:949 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "" @@ -675,8 +676,7 @@ msgid "" " --bootstrap use the bootstrap Guile to build the new Guix" msgstr "" "\n" -" --bootstrap usa a inicialização do Guile para compilar o novo " -"Guix" +" --bootstrap usa a inicialização do Guile para compilar o novo Guix" #: guix/scripts/pull.scm:117 #, scheme-format @@ -763,7 +763,7 @@ msgstr "" #: guix/scripts/substitute-binary.scm:338 #, scheme-format -msgid "narinfo for '~a' lacks a signature~%" +msgid "substitute at '~a' lacks a signature~%" msgstr "" #: guix/scripts/substitute-binary.scm:526 @@ -774,9 +774,7 @@ msgstr "Baixando, por favor aguarde...~%" #: guix/scripts/substitute-binary.scm:528 #, scheme-format msgid "(Please consider upgrading Guile to get proper progress report.)~%" -msgstr "" -"(Por favor, considere atualizar o Guile para obter o relatório adequado do " -"progresso.)~%" +msgstr "(Por favor, considere atualizar o Guile para obter o relatório adequado do progresso.)~%" #: guix/scripts/substitute-binary.scm:545 #, scheme-format @@ -789,8 +787,7 @@ msgid "" "Internal tool to substitute a pre-built binary to a local build.\n" msgstr "" "Uso: guix substitute-binary [OPÇÃO]...\n" -"Ferramenta interna para substituir um binário pré-compilado para uma " -"compilação local.\n" +"Ferramenta interna para substituir um binário pré-compilado para uma compilação local.\n" #: guix/scripts/substitute-binary.scm:556 msgid "" @@ -799,8 +796,7 @@ msgid "" " store file names passed on the standard input" msgstr "" "\n" -" --query relata a disponibilidade de substitutos para os " -"nomes\n" +" --query relata a disponibilidade de substitutos para os nomes\n" " de arquivos de armazenamento passados na entrada\n" " padrão" @@ -813,22 +809,19 @@ msgid "" msgstr "" "\n" " --substitute ARQUIVO-ARMAZENAMENTO DESTINO\n" -" baixa ARQUIVO-ARMAZENAMENTO e armazena-o como um " -"Nar\n" +" baixa ARQUIVO-ARMAZENAMENTO e armazena-o como um Nar\n" " no arquivo DESTINO" -#: guix/scripts/substitute-binary.scm:599 -msgid "" -"ACL for archive imports seems to be uninitialized, substitutes may be " -"unavailable\n" +#: guix/scripts/substitute-binary.scm:604 +msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" msgstr "" -#: guix/scripts/substitute-binary.scm:619 +#: guix/scripts/substitute-binary.scm:625 #, scheme-format msgid "failed to look up host '~a' (~a), substituter disabled~%" msgstr "" -#: guix/scripts/substitute-binary.scm:726 +#: guix/scripts/substitute-binary.scm:732 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: opções desconhecidas~%" @@ -865,93 +858,112 @@ msgstr "" msgid "wrong arguments" msgstr "número errado de argumentos~%" -#: guix/scripts/system.scm:67 +#: guix/scripts/system.scm:74 #, fuzzy, scheme-format msgid "failed to open operating system file '~a': ~a~%" msgstr "falha ao conectar em \"~a\": ~a~%" -#: guix/scripts/system.scm:70 +#: guix/scripts/system.scm:78 guix/ui.scm:238 #, fuzzy, scheme-format -msgid "failed to load machine file '~a': ~s~%" +msgid "~a: ~a~%" +msgstr "~a~%" + +#: guix/scripts/system.scm:81 +#, fuzzy, scheme-format +msgid "failed to load operating system file '~a': ~s~%" msgstr "falha ao conectar em \"~a\": ~a~%" -#: guix/scripts/system.scm:86 +#: guix/scripts/system.scm:116 #, fuzzy, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "falha ao criar raiz de GC \"~a\": ~a~%" -#: guix/scripts/system.scm:102 +#: guix/scripts/system.scm:144 #, scheme-format msgid "initializing the current root file system~%" msgstr "" -#: guix/scripts/system.scm:113 +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 #, fuzzy, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "falha ao instalar local: ~a~%" -#: guix/scripts/system.scm:121 +#: guix/scripts/system.scm:197 +#, scheme-format +msgid "activating system...~%" +msgstr "" + +#: guix/scripts/system.scm:236 +#, fuzzy, scheme-format +msgid "unrecognized boot parameters for '~a'~%" +msgstr "opção desconhecida: ~a~%" + +#: guix/scripts/system.scm:323 +#, fuzzy, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "falha ao conectar em \"~a\": ~a~%" + +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" msgstr "" -#: guix/scripts/system.scm:124 +#: guix/scripts/system.scm:342 msgid "The valid values for ACTION are:\n" msgstr "" -#: guix/scripts/system.scm:125 +#: guix/scripts/system.scm:343 +msgid " - 'reconfigure', switch to a new operating system configuration\n" +msgstr "" + +#: guix/scripts/system.scm:345 msgid " - 'build', build the operating system without installing anything\n" msgstr "" -#: guix/scripts/system.scm:127 +#: guix/scripts/system.scm:347 msgid " - 'vm', build a virtual machine image that shares the host's store\n" msgstr "" -#: guix/scripts/system.scm:129 +#: guix/scripts/system.scm:349 msgid " - 'vm-image', build a freestanding virtual machine image\n" msgstr "" -#: guix/scripts/system.scm:131 +#: guix/scripts/system.scm:351 msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" msgstr "" -#: guix/scripts/system.scm:133 +#: guix/scripts/system.scm:353 msgid " - 'init', initialize a root file system to run GNU.\n" msgstr "" -#: guix/scripts/system.scm:137 +#: guix/scripts/system.scm:357 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" msgstr "" -#: guix/scripts/system.scm:139 +#: guix/scripts/system.scm:359 msgid "" "\n" " --no-grub for 'init', do not install GRUB" msgstr "" -#: guix/scripts/system.scm:198 +#: guix/scripts/system.scm:422 #, fuzzy, scheme-format msgid "~a: unknown action~%" msgstr "~A: pacote desconhecido~%" -#: guix/scripts/system.scm:215 +#: guix/scripts/system.scm:439 #, fuzzy, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "número errado de argumentos~%" -#: guix/scripts/system.scm:234 +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "" -#: guix/scripts/system.scm:272 -#, fuzzy, scheme-format -msgid "initializing operating system under '~a'...~%" -msgstr "falha ao conectar em \"~a\": ~a~%" - #: guix/gnu-maintenance.scm:373 #, scheme-format msgid "signature verification failed for `~a'~%" @@ -980,8 +992,7 @@ msgstr "falha ao instalar local: ~a~%" #: guix/ui.scm:150 msgid "" "Copyright (C) 2014 the Guix authors\n" -"License GPLv3+: GNU GPL version 3 or later \n" +"License GPLv3+: GNU GPL version 3 or later \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 "" @@ -1035,9 +1046,7 @@ msgstr "~a:~a:~a: pacote \"~a\" tem uma entrada inválida: ~s~%" #: guix/ui.scm:219 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" -msgstr "" -"~a: ~a: sistema de compilação de \"~a\" não tem suporte a compilações " -"cruzadas~%" +msgstr "~a: ~a: sistema de compilação de \"~a\" não tem suporte a compilações cruzadas~%" #: guix/ui.scm:224 #, scheme-format @@ -1049,70 +1058,65 @@ msgstr "falha ao conectar em \"~a\": ~a~%" msgid "build failed: ~a~%" msgstr "compilação falhou: ~a~%" -#: guix/ui.scm:238 -#, fuzzy, scheme-format -msgid "~a: ~a~%" -msgstr "~a~%" - -#: guix/ui.scm:255 +#: guix/ui.scm:257 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "falha ao ler a expressão ~s: ~s~%" -#: guix/ui.scm:261 +#: guix/ui.scm:263 #, scheme-format msgid "failed to evaluate expression `~a': ~s~%" msgstr "falha ao avaliar a expressão \"~a\": ~s~%" -#: guix/ui.scm:270 +#: guix/ui.scm:272 #, fuzzy, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "expressão \"~s\" não corresponde a um pacote~%" -#: guix/ui.scm:317 +#: guix/ui.scm:319 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgstr "~:[A seguinte derivação será compilada:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:322 +#: guix/ui.scm:324 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[O seguinte arquivo será baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:328 +#: guix/ui.scm:330 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgstr "~:[A seguinte derivação será compilada:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:333 +#: guix/ui.scm:335 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[O seguinte arquivo será baixado:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:350 +#: guix/ui.scm:352 msgid "" msgstr "" -#: guix/ui.scm:378 +#: guix/ui.scm:380 #, scheme-format msgid "failed to create configuration directory `~a': ~a~%" msgstr "falha ao criar o diretório de compilação \"~a\": ~a~%" -#: guix/ui.scm:459 guix/ui.scm:473 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "desconhecido" -#: guix/ui.scm:582 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "argumento inválido: ~a~%" -#: guix/ui.scm:587 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Tente \"guix --help\" para mais informações.~%" -#: guix/ui.scm:617 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1120,21 +1124,21 @@ msgstr "" "Uso: guix COMANDO ARGUMENTOS...\n" "Executa COMANDO com ARGUMENTOS.\n" -#: guix/ui.scm:620 +#: guix/ui.scm:636 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "COMANDO deve ser um dos subcomandos listados abaixo:\n" -#: guix/ui.scm:640 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: comando não encontrado~%" -#: guix/ui.scm:658 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: faltando um nome de comando~%" -#: guix/ui.scm:666 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: opção \"~a\" desconhecida~%" @@ -1237,3 +1241,7 @@ msgstr "" #: guix/nar.scm:487 msgid "invalid inter-file archive mark" msgstr "" + +#, fuzzy +#~ msgid "failed to load machine file '~a': ~s~%" +#~ msgstr "falha ao conectar em \"~a\": ~a~%" diff --git a/po/guix/sr.po b/po/guix/sr.po index c1b10cea73..28bdc170ae 100644 --- a/po/guix/sr.po +++ b/po/guix/sr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: guix-0.6-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-04-05 12:37+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2014-06-19 08:51+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <(nothing)>\n" @@ -14,41 +14,39 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "не могу да приступим „~a“: ~a~%" -#: guix/scripts/build.scm:54 guix/scripts/package.scm:337 -#: guix/scripts/build.scm:53 guix/scripts/package.scm:337 +#: guix/scripts/build.scm:54 guix/scripts/package.scm:349 #, scheme-format msgid "ambiguous package specification `~a'~%" msgstr "нејасна одредница пакета „~a“~%" -#: guix/scripts/build.scm:54 guix/scripts/package.scm:339 +#: guix/scripts/build.scm:55 guix/scripts/package.scm:351 #, scheme-format msgid "choosing ~a from ~a~%" msgstr "бирам ~a из ~a~%" -#: guix/scripts/build.scm:60 +#: guix/scripts/build.scm:61 #, scheme-format msgid "~A: package not found for version ~a~%" msgstr "~A: нисам пронашао пакет за издање ~a~%" -#: guix/scripts/build.scm:62 +#: guix/scripts/build.scm:63 #, scheme-format msgid "~A: unknown package~%" msgstr "~A: непознат пакет~%" -#: guix/scripts/build.scm:85 +#: guix/scripts/build.scm:86 #, scheme-format msgid "failed to create GC root `~a': ~a~%" msgstr "нисам успео да направим ГЦ корен „~a“: ~a~%" -#: guix/scripts/build.scm:122 +#: guix/scripts/build.scm:123 msgid "" "\n" " -K, --keep-failed keep build tree of failed builds" @@ -56,7 +54,7 @@ msgstr "" "\n" " -K, --keep-failed задржава стабло изградње неуспелих изградњи" -#: guix/scripts/build.scm:124 +#: guix/scripts/build.scm:125 msgid "" "\n" " -n, --dry-run do not build the derivations" @@ -64,7 +62,7 @@ msgstr "" "\n" " -n, --dry-run не изграђује изведенице" -#: guix/scripts/build.scm:126 +#: guix/scripts/build.scm:127 msgid "" "\n" " --fallback fall back to building when the substituter fails" @@ -72,25 +70,23 @@ msgstr "" "\n" " --fallback враћа се на изградњу када заменик не успе" -#: guix/scripts/build.scm:128 +#: guix/scripts/build.scm:129 msgid "" "\n" " --no-substitutes build instead of resorting to pre-built substitutes" msgstr "" "\n" -" --no-substitutes изграђује уместо да поново ређа заменике " -"предизградње" +" --no-substitutes изграђује уместо да поново ређа заменике предизградње" -#: guix/scripts/build.scm:130 +#: guix/scripts/build.scm:131 msgid "" "\n" " --no-build-hook do not attempt to offload builds via the build hook" msgstr "" "\n" -" --no-build-hook не покушава да растерети изградњу путем предворја " -"изградње" +" --no-build-hook не покушава да растерети изградњу путем предворја изградње" -#: guix/scripts/build.scm:132 +#: guix/scripts/build.scm:133 msgid "" "\n" " --max-silent-time=SECONDS\n" @@ -100,7 +96,7 @@ msgstr "" " --max-silent-time=СЕКУНДЕ\n" " означава изградњу неупелом након СЕКУНДЕ мировања" -#: guix/scripts/build.scm:135 +#: guix/scripts/build.scm:136 msgid "" "\n" " --timeout=SECONDS mark the build as failed after SECONDS of activity" @@ -109,7 +105,7 @@ msgstr "" " --timeout=СЕКУНДЕ\n" " означава изградњу неуспелом након СЕКУНДЕ рада" -#: guix/scripts/build.scm:137 +#: guix/scripts/build.scm:138 msgid "" "\n" " --verbosity=LEVEL use the given verbosity LEVEL" @@ -117,21 +113,20 @@ msgstr "" "\n" " --verbosity=НИВО користи дати НИВО опширности" -#: guix/scripts/build.scm:139 +#: guix/scripts/build.scm:140 msgid "" "\n" " -c, --cores=N allow the use of up to N CPU cores for the build" msgstr "" "\n" -" -c, --cores=N омогућава коришћење до N језгра процесора за " -"изградњу" +" -c, --cores=N омогућава коришћење до N језгра процесора за изградњу" -#: guix/scripts/build.scm:204 +#: guix/scripts/build.scm:206 #, scheme-format msgid "~a: not a number~%" msgstr "~a: није број~%" -#: guix/scripts/build.scm:220 +#: guix/scripts/build.scm:223 msgid "" "Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n" "Build the given PACKAGE-OR-DERIVATION and return their output paths.\n" @@ -139,7 +134,7 @@ msgstr "" "Употреба: guix build [ОПЦИЈА]... ПАКЕТ-ИЛИ-ИЗВЕДНИЦА...\n" "Изграђује дати ПАКЕТ-ИЛИ-ИЗВЕДНИЦУ и исписује њихове путање излаза.\n" -#: guix/scripts/build.scm:222 +#: guix/scripts/build.scm:225 msgid "" "\n" " -e, --expression=EXPR build the package or derivation EXPR evaluates to" @@ -147,7 +142,7 @@ msgstr "" "\n" " -e, --expression=ИЗРАЗ изграђује процене ИЗРАЗА пакета или изведенице на" -#: guix/scripts/build.scm:224 +#: guix/scripts/build.scm:227 msgid "" "\n" " -S, --source build the packages' source derivations" @@ -155,7 +150,7 @@ msgstr "" "\n" " -S, --source изграђује изведенице извора пакета" -#: guix/scripts/build.scm:226 +#: guix/scripts/build.scm:229 msgid "" "\n" " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"" @@ -163,7 +158,7 @@ msgstr "" "\n" " -s, --system=СИСТЕМ покушава да изгради за СИСТЕМ--e.g., „i686-linux“" -#: guix/scripts/build.scm:228 +#: guix/scripts/build.scm:231 msgid "" "\n" " --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\"" @@ -171,7 +166,7 @@ msgstr "" "\n" " --target=ТРОЈКА унакрсно изграђује за ТРОЈКУ--e.g., „armel-linux-gnu“" -#: guix/scripts/build.scm:230 +#: guix/scripts/build.scm:233 msgid "" "\n" " --with-source=SOURCE\n" @@ -181,7 +176,7 @@ msgstr "" " --with-source=ИЗВОР\n" " користи ИЗВОР приликом изградње одговарајућег пакета" -#: guix/scripts/build.scm:233 +#: guix/scripts/build.scm:236 msgid "" "\n" " -d, --derivations return the derivation paths of the given packages" @@ -189,18 +184,17 @@ msgstr "" "\n" " -d, --derivations исписује путање изведенице датог пакета" -#: guix/scripts/build.scm:235 +#: guix/scripts/build.scm:238 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=ДАТОТЕКА чини ДАТОТЕКУ симболичком везом ка резултату, и " -"бележи је\n" +" -r, --root=ДАТОТЕКА чини ДАТОТЕКУ симболичком везом ка резултату, и бележи је\n" " као корен скупљача ђубра" -#: guix/scripts/build.scm:238 +#: guix/scripts/build.scm:241 msgid "" "\n" " --log-file return the log file names for the given derivations" @@ -208,10 +202,10 @@ msgstr "" "\n" " --log-file исписује називе датотеке дневника за дате изведенице" -#: guix/scripts/build.scm:243 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:511 guix/scripts/gc.scm:58 +#: guix/scripts/build.scm:246 guix/scripts/download.scm:53 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:77 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -219,10 +213,10 @@ msgstr "" "\n" " -h, --help приказује ову помоћ и излази" -#: guix/scripts/build.scm:245 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:513 guix/scripts/gc.scm:60 +#: guix/scripts/build.scm:248 guix/scripts/download.scm:55 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:79 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -230,19 +224,19 @@ msgstr "" "\n" " -V, --version приказује податке о издању и излази" -#: guix/scripts/build.scm:360 +#: guix/scripts/build.scm:368 #, scheme-format msgid "sources do not match any package:~{ ~a~}~%" msgstr "извори не одговарају ниједном пакету:~{ ~a~}~%" -#: guix/scripts/build.scm:389 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:744 guix/scripts/gc.scm:152 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:116 +#: guix/scripts/build.scm:397 guix/scripts/download.scm:96 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: непозната опција~%" -#: guix/scripts/build.scm:417 +#: guix/scripts/build.scm:425 #, scheme-format msgid "no build log for '~a'~%" msgstr "нема дневника изградње за „~a“~%" @@ -286,73 +280,73 @@ msgstr "~a: нисам успео да обрадим путању~%" msgid "~a: download failed~%" msgstr "~a: преузимање није успело~%" -#: guix/scripts/package.scm:76 +#: guix/scripts/package.scm:88 #, scheme-format msgid "failed to build the empty profile~%" msgstr "нисам успео да изградим празан профил~%" -#: guix/scripts/package.scm:85 +#: guix/scripts/package.scm:97 #, scheme-format msgid "switching from generation ~a to ~a~%" msgstr "пребацујем се са генерације ~a на ~a~%" -#: guix/scripts/package.scm:96 guix/scripts/package.scm:852 -#: guix/scripts/package.scm:964 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "профил „~a“ не постоји~%" -#: guix/scripts/package.scm:100 +#: guix/scripts/package.scm:112 #, scheme-format msgid "nothing to do: already at the empty profile~%" msgstr "ништа за урадити: већ сам у празном профилу~%" -#: guix/scripts/package.scm:185 +#: guix/scripts/package.scm:197 #, scheme-format msgid "The following package would be removed:~%~{~a~%~}~%" msgstr "Следећи пакети би требали бити уклоњени:~%~{~a~%~}~%" -#: guix/scripts/package.scm:190 +#: guix/scripts/package.scm:202 #, scheme-format msgid "The following package will be removed:~%~{~a~%~}~%" msgstr "Следећи пакети ће бити уклоњени:~%~{~a~%~}~%" -#: guix/scripts/package.scm:202 +#: guix/scripts/package.scm:214 #, scheme-format msgid "The following package would be installed:~%~{~a~%~}~%" msgstr "Следећи пакети би требали бити инсталирани:~%~{~a~%~}~%" -#: guix/scripts/package.scm:207 +#: guix/scripts/package.scm:219 #, scheme-format msgid "The following package will be installed:~%~{~a~%~}~%" msgstr "Следећи пакети ће бити инсталирани:~%~{~a~%~}~%" -#: guix/scripts/package.scm:327 +#: guix/scripts/package.scm:339 #, scheme-format msgid "package `~a' lacks output `~a'~%" msgstr "пакету „~a“ недостаје излаз „~a“~%" -#: guix/scripts/package.scm:344 +#: guix/scripts/package.scm:356 #, scheme-format msgid "~a: package not found~%" msgstr "~a: нисам пронашао пакет~%" -#: guix/scripts/package.scm:379 +#: guix/scripts/package.scm:391 #, scheme-format msgid "looking for the latest release of GNU ~a..." msgstr "тражим последње издање Гнуа ~a..." -#: guix/scripts/package.scm:383 +#: guix/scripts/package.scm:395 #, scheme-format msgid "~a: note: using ~a but ~a is available upstream~%" msgstr "~a: напомена: користим ~a али ~a је доступно узводно~%" -#: guix/scripts/package.scm:455 +#: guix/scripts/package.scm:467 #, scheme-format msgid "The following environment variable definitions may be needed:~%" msgstr "Следеће одреднице променљиве окружења могу бити потребне:~%" -#: guix/scripts/package.scm:471 +#: guix/scripts/package.scm:483 msgid "" "Usage: guix package [OPTION]... PACKAGES...\n" "Install, remove, or upgrade PACKAGES in a single transaction.\n" @@ -360,7 +354,7 @@ msgstr "" "Употреба: guix package [ОПЦИЈА]... ПАКЕТИ...\n" "Инсталирајте, уклоните, или доградите ПАКЕТЕ у једном прелазу.\n" -#: guix/scripts/package.scm:473 +#: guix/scripts/package.scm:485 msgid "" "\n" " -i, --install=PACKAGE install PACKAGE" @@ -368,7 +362,7 @@ msgstr "" "\n" " -i, --install=ПАКЕТ инсталира ПАКЕТ" -#: guix/scripts/package.scm:475 +#: guix/scripts/package.scm:487 msgid "" "\n" " -e, --install-from-expression=EXP\n" @@ -378,7 +372,7 @@ msgstr "" " -e, --install-from-expression=ИЗР\n" " инсталира процене ИЗР пакета у" -#: guix/scripts/package.scm:478 +#: guix/scripts/package.scm:490 msgid "" "\n" " -r, --remove=PACKAGE remove PACKAGE" @@ -386,16 +380,15 @@ msgstr "" "\n" " -r, --remove=ПАКЕТ уклања ПАКЕТ" -#: guix/scripts/package.scm:480 +#: guix/scripts/package.scm:492 msgid "" "\n" " -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP" msgstr "" "\n" -" -u, --upgrade[=РЕГИЗР] дограђује све инсталиране пакете који одговарају " -"РЕГИЗРАЗУ" +" -u, --upgrade[=РЕГИЗР] дограђује све инсталиране пакете који одговарају РЕГИЗРАЗУ" -#: guix/scripts/package.scm:482 +#: guix/scripts/package.scm:494 msgid "" "\n" " --roll-back roll back to the previous generation" @@ -403,7 +396,7 @@ msgstr "" "\n" " --roll-back враћа се на претходну генерацију" -#: guix/scripts/package.scm:484 +#: guix/scripts/package.scm:496 msgid "" "\n" " --search-paths display needed environment variable definitions" @@ -411,7 +404,7 @@ msgstr "" "\n" " --search-paths приказује потребне одреднице променљиве окружења" -#: guix/scripts/package.scm:486 +#: guix/scripts/package.scm:498 msgid "" "\n" " -l, --list-generations[=PATTERN]\n" @@ -421,7 +414,7 @@ msgstr "" " -l, --list-generations[=ШАБЛОН]\n" " исписује генерације које одговарају ШАБЛОНУ" -#: guix/scripts/package.scm:489 +#: guix/scripts/package.scm:501 msgid "" "\n" " -d, --delete-generations[=PATTERN]\n" @@ -431,7 +424,7 @@ msgstr "" " -d, --delete-generations[=ШАБЛОН]\n" " брише генерације које одговарају ШАБЛОНУ" -#: guix/scripts/package.scm:492 +#: guix/scripts/package.scm:504 msgid "" "\n" " -p, --profile=PROFILE use PROFILE instead of the user's default profile" @@ -439,7 +432,7 @@ msgstr "" "\n" " -p, --profile=ПРОФИЛ користи ПРОФИЛ уместо корисничког подразумеваног" -#: guix/scripts/package.scm:495 +#: guix/scripts/package.scm:507 msgid "" "\n" " --bootstrap use the bootstrap Guile to build the profile" @@ -447,7 +440,7 @@ msgstr "" "\n" " --bootstrap користи Гуиле почетног учитавања да изгради профил" -#: guix/scripts/package.scm:497 guix/scripts/pull.scm:75 +#: guix/scripts/package.scm:509 guix/scripts/pull.scm:75 msgid "" "\n" " --verbose produce verbose output" @@ -455,7 +448,7 @@ msgstr "" "\n" " --verbose ствара опширан излаз" -#: guix/scripts/package.scm:500 +#: guix/scripts/package.scm:512 msgid "" "\n" " -s, --search=REGEXP search in synopsis and description using REGEXP" @@ -463,7 +456,7 @@ msgstr "" "\n" " -s, --search=РЕГИЗР тражи у скици и опису користећи РЕГИЗР" -#: guix/scripts/package.scm:502 +#: guix/scripts/package.scm:514 msgid "" "\n" " -I, --list-installed[=REGEXP]\n" @@ -471,10 +464,9 @@ msgid "" msgstr "" "\n" " -I, --list-installed[=РЕГИЗР]\n" -" исписује инсталиране пакете који одговарају " -"РЕГИЗРАЗУ" +" исписује инсталиране пакете који одговарају РЕГИЗРАЗУ" -#: guix/scripts/package.scm:505 +#: guix/scripts/package.scm:517 msgid "" "\n" " -A, --list-available[=REGEXP]\n" @@ -484,62 +476,71 @@ msgstr "" " -A, --list-available[=РЕГИЗР]\n" " исписује доступне пакете који одговарају РЕГИЗРАЗУ" -#: guix/scripts/package.scm:748 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=ПАКЕТ инсталира ПАКЕТ" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: страни аргумент~%" -#: guix/scripts/package.scm:763 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Покушајте „info '(guix) Invoking guix package'“ за више података.~%" -#: guix/scripts/package.scm:785 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "грешка: приликом стварања директоријума „~a“: ~a~%" -#: guix/scripts/package.scm:789 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Направите директоријум „~a“, у вашем власништву.~%" -#: guix/scripts/package.scm:796 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "грешка: директоријум „~a“ није у вашем власништву~%" -#: guix/scripts/package.scm:799 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Поставите као власника ~s над „~a“.~%" -#: guix/scripts/package.scm:822 +#: guix/scripts/package.scm:843 #, scheme-format msgid "deleting ~a~%" msgstr "бришем ~a~%" -#: guix/scripts/package.scm:875 guix/scripts/package.scm:980 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "неисправна синтакса: ~a~%" -#: guix/scripts/package.scm:904 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "ништа неће бити урађено~%" -#: guix/scripts/package.scm:927 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "~a пакет у профилу~%" -#: guix/scripts/package.scm:942 +#: guix/scripts/package.scm:963 #, scheme-format msgid "Generation ~a\t~a" msgstr "Генерација ~a\t~a" -#: guix/scripts/package.scm:949 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(текуће)~%" @@ -610,17 +611,7 @@ msgstr "" "\n" " --referrers исписује убрајаче ПУТАЊА" -#: guix/scripts/gc.scm:92 -#, scheme-format -msgid "unknown unit: ~a~%" -msgstr "непозната јединица: ~a~%" - -#: guix/scripts/gc.scm:93 -#, scheme-format -msgid "invalid number: ~a~%" -msgstr "неисправан број: ~a~%" - -#: guix/scripts/gc.scm:114 +#: guix/scripts/gc.scm:84 #, scheme-format msgid "invalid amount of storage: ~a~%" msgstr "неисправан износ складишта: ~a~%" @@ -652,7 +643,7 @@ msgstr "" msgid "unrecognized option: ~a~%" msgstr "непозната опција: ~a~%" -#: guix/scripts/hash.scm:134 guix/ui.scm:193 +#: guix/scripts/hash.scm:134 guix/ui.scm:233 #, scheme-format msgid "~a~%" msgstr "~a~%" @@ -684,8 +675,7 @@ msgid "" " --bootstrap use the bootstrap Guile to build the new Guix" msgstr "" "\n" -" --bootstrap користи Гуиле почетног учитавања да изгради нови " -"Гуикс" +" --bootstrap користи Гуиле почетног учитавања да изгради нови Гуикс" #: guix/scripts/pull.scm:117 #, scheme-format @@ -771,8 +761,8 @@ msgid "signature on '~a' is corrupt~%" msgstr "потпис на „~a“ је оштећен~%" #: guix/scripts/substitute-binary.scm:338 -#, scheme-format -msgid "narinfo for '~a' lacks a signature~%" +#, fuzzy, scheme-format +msgid "substitute at '~a' lacks a signature~%" msgstr "нарподацима за „~a“ недостаје потпис~%" #: guix/scripts/substitute-binary.scm:526 @@ -783,8 +773,7 @@ msgstr "Преузима, молим сачекајте...~%" #: guix/scripts/substitute-binary.scm:528 #, scheme-format msgid "(Please consider upgrading Guile to get proper progress report.)~%" -msgstr "" -"(Размотрите надоградњу Гуила да добијете извештај о његовом напредовању.)~%" +msgstr "(Размотрите надоградњу Гуила да добијете извештај о његовом напредовању.)~%" #: guix/scripts/substitute-binary.scm:545 #, scheme-format @@ -806,8 +795,7 @@ msgid "" " store file names passed on the standard input" msgstr "" "\n" -" --query извештава о доступности заменика за називе " -"датотека\n" +" --query извештава о доступности заменика за називе датотека\n" " складишта прослеђених на стандардном улазу" #: guix/scripts/substitute-binary.scm:559 @@ -819,23 +807,19 @@ msgid "" msgstr "" "\n" " --substitute ОДРЕДИШТЕ СКЛАДИШНЕ-ДАТОТЕКЕ\n" -" преузима СКЛАДИШНУ-ДАТОТЕКУ и смешта је као Нар " -"удатотеци\n" +" преузима СКЛАДИШНУ-ДАТОТЕКУ и смешта је као Нар удатотеци\n" " ОДРЕДИШТЕ" -#: guix/scripts/substitute-binary.scm:599 -msgid "" -"ACL for archive imports seems to be uninitialized, substitutes may be " -"unavailable\n" -msgstr "" -"АЦЛ за увоз архиве изгледа да је неупотребљив, замене могу бити недоступне\n" +#: guix/scripts/substitute-binary.scm:604 +msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n" +msgstr "АЦЛ за увоз архиве изгледа да је неупотребљив, замене могу бити недоступне\n" -#: guix/scripts/substitute-binary.scm:619 +#: guix/scripts/substitute-binary.scm:625 #, scheme-format msgid "failed to look up host '~a' (~a), substituter disabled~%" msgstr "нисам успео да потражим домаћина „~a“ (~a), замењивач је искључен~%" -#: guix/scripts/substitute-binary.scm:726 +#: guix/scripts/substitute-binary.scm:732 #, scheme-format msgid "~a: unrecognized options~%" msgstr "~a: непозната опција~%" @@ -860,7 +844,7 @@ msgstr "грешка: неовлашћени јавни кључ: ~a~%" msgid "error: corrupt signature data: ~a~%" msgstr "грешка: оштећени подаци потписа: ~a~%" -#: guix/scripts/authenticate.scm:110 +#: guix/scripts/authenticate.scm:126 msgid "" "Usage: guix authenticate OPTION...\n" "Sign or verify the signature on the given file. This tool is meant to\n" @@ -870,21 +854,56 @@ msgstr "" "Потпишите или проверите потпис на датој датотеци. Овај алат је замишљен\n" "за унутрашњу употребу гуих-демоном.\n" -#: guix/scripts/authenticate.scm:116 +#: guix/scripts/authenticate.scm:132 msgid "wrong arguments" msgstr "погрешни аргуменати" -#: guix/scripts/system.scm:59 +#: guix/scripts/system.scm:74 #, scheme-format msgid "failed to open operating system file '~a': ~a~%" msgstr "нисам успео да отворим датотеку оперативног система „~a“: ~a~%" -#: guix/scripts/system.scm:62 +#: guix/scripts/system.scm:78 guix/ui.scm:238 #, scheme-format -msgid "failed to load machine file '~a': ~s~%" -msgstr "нисам успео да учитам датотеку машине „~a“: ~s~%" +msgid "~a: ~a~%" +msgstr "~a: ~a~%" -#: guix/scripts/system.scm:71 +#: guix/scripts/system.scm:81 +#, fuzzy, scheme-format +msgid "failed to load operating system file '~a': ~s~%" +msgstr "нисам успео да отворим датотеку оперативног система „~a“: ~a~%" + +#: guix/scripts/system.scm:116 +#, fuzzy, scheme-format +msgid "failed to register '~a' under '~a'~%" +msgstr "нисам успео да направим ГЦ корен „~a“: ~a~%" + +#: guix/scripts/system.scm:144 +#, scheme-format +msgid "initializing the current root file system~%" +msgstr "" + +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 +#, fuzzy, scheme-format +msgid "failed to install GRUB on device '~a'~%" +msgstr "нисам успео да инсталирам локалитет: ~a~%" + +#: guix/scripts/system.scm:197 +#, scheme-format +msgid "activating system...~%" +msgstr "" + +#: guix/scripts/system.scm:236 +#, fuzzy, scheme-format +msgid "unrecognized boot parameters for '~a'~%" +msgstr "непозната опција: ~a~%" + +#: guix/scripts/system.scm:323 +#, fuzzy, scheme-format +msgid "initializing operating system under '~a'...~%" +msgstr "нисам успео да отворим датотеку оперативног система „~a“: ~a~%" + +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -892,69 +911,99 @@ msgstr "" "Употреба: guix system [ОПЦИЈА] РАДЊА ДАТОТЕКА\n" "Изграђује оперативни систем објављен у ДАТОТЕЦИ у складу са РАДЊОМ.\n" -#: guix/scripts/system.scm:73 -msgid "" -"Currently the only valid value for ACTION is 'vm', which builds\n" -"a virtual machine of the given operating system.\n" +#: guix/scripts/system.scm:342 +msgid "The valid values for ACTION are:\n" msgstr "" -"Тренутно једина исправна вредност за РАДЊУ је „vm“, која гради\n" -"виртуелну машину датог оперативног система.\n" -#: guix/scripts/system.scm:121 -#, scheme-format -msgid "~a: extraneous argument~%" -msgstr "~a: страни аргумент~%" +#: guix/scripts/system.scm:343 +msgid " - 'reconfigure', switch to a new operating system configuration\n" +msgstr "" -#: guix/scripts/system.scm:126 +#: guix/scripts/system.scm:345 +msgid " - 'build', build the operating system without installing anything\n" +msgstr "" + +#: guix/scripts/system.scm:347 +msgid " - 'vm', build a virtual machine image that shares the host's store\n" +msgstr "" + +#: guix/scripts/system.scm:349 +msgid " - 'vm-image', build a freestanding virtual machine image\n" +msgstr "" + +#: guix/scripts/system.scm:351 +msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" +msgstr "" + +#: guix/scripts/system.scm:353 +msgid " - 'init', initialize a root file system to run GNU.\n" +msgstr "" + +#: guix/scripts/system.scm:357 +msgid "" +"\n" +" --image-size=SIZE for 'vm-image', produce an image of SIZE" +msgstr "" + +#: guix/scripts/system.scm:359 +msgid "" +"\n" +" --no-grub for 'init', do not install GRUB" +msgstr "" + +#: guix/scripts/system.scm:422 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: непозната радња~%" -#: guix/scripts/system.scm:135 +#: guix/scripts/system.scm:439 +#, fuzzy, scheme-format +msgid "wrong number of arguments for action '~a'~%" +msgstr "погрешан број аргумената~%" + +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "није наведена датотека подешавања~%" -#: guix/gnu-maintenance.scm:364 +#: guix/gnu-maintenance.scm:373 #, scheme-format msgid "signature verification failed for `~a'~%" msgstr "није успела провера потписа за „~a“~%" -#: guix/gnu-maintenance.scm:366 +#: guix/gnu-maintenance.scm:375 #, scheme-format msgid "(could be because the public key is not in your keyring)~%" msgstr "(може бити зато што јавни кључ није у вашем привеску)~%" -#: guix/gnu-maintenance.scm:441 +#: guix/gnu-maintenance.scm:450 #, scheme-format msgid "~a: could not locate source file" msgstr "~a: не могу да пронађем изворну датотеку" -#: guix/gnu-maintenance.scm:446 +#: guix/gnu-maintenance.scm:455 #, scheme-format msgid "~a: ~a: no `version' field in source; skipping~%" msgstr "~a: ~a: нема поља „version“ у извору; прескачем~%" -#: guix/ui.scm:123 +#: guix/ui.scm:131 #, scheme-format msgid "failed to install locale: ~a~%" msgstr "нисам успео да инсталирам локалитет: ~a~%" -#: guix/ui.scm:142 +#: guix/ui.scm:150 msgid "" "Copyright (C) 2014 the Guix authors\n" -"License GPLv3+: GNU GPL version 3 or later \n" +"License GPLv3+: GNU GPL version 3 or later \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 "" "Ауторска права (C) 2014 аутори Гуикса\n" -"Лиценца ОЈЛв3+: ГНУ ОЈЛ издање 3 или касније \n" +"Лиценца ОЈЛв3+: ГНУ ОЈЛ издање 3 или касније \n" "Ово је слободан софтвер: слободни сте да га мењате и расподељујете.\n" "Не постоји НИКАКВА ГАРАНЦИЈА, у оквирима дозвољеним законом.\n" -#: guix/ui.scm:150 +#: guix/ui.scm:158 #, scheme-format msgid "" "\n" @@ -963,7 +1012,7 @@ msgstr "" "\n" "Грешке пријавите на: ~a." -#: guix/ui.scm:152 +#: guix/ui.scm:160 #, scheme-format msgid "" "\n" @@ -972,7 +1021,7 @@ msgstr "" "\n" "~a матична страница: <~a>" -#: guix/ui.scm:154 +#: guix/ui.scm:162 msgid "" "\n" "General help using GNU software: " @@ -980,95 +1029,100 @@ msgstr "" "\n" "Општа помоћ користећи ГНУ софтвер: " -#: guix/ui.scm:161 +#: guix/ui.scm:169 #, scheme-format msgid "~a: invalid number~%" msgstr "~a: неисправан број~%" -#: guix/ui.scm:172 +#: guix/ui.scm:186 +#, scheme-format +msgid "invalid number: ~a~%" +msgstr "неисправан број: ~a~%" + +#: guix/ui.scm:201 +#, scheme-format +msgid "unknown unit: ~a~%" +msgstr "непозната јединица: ~a~%" + +#: guix/ui.scm:212 #, scheme-format msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%" msgstr "~a:~a:~a: пакет „~a“ садржи неисправан улаз: ~s~%" -#: guix/ui.scm:179 +#: guix/ui.scm:219 #, scheme-format msgid "~a: ~a: build system `~a' does not support cross builds~%" msgstr "~a: ~a: систем изградње „~a“ не садржи унакрсне изградње~%" -#: guix/ui.scm:184 +#: guix/ui.scm:224 #, scheme-format msgid "failed to connect to `~a': ~a~%" msgstr "нисам успео да се повежем на „~a“: ~a~%" -#: guix/ui.scm:189 +#: guix/ui.scm:229 #, scheme-format msgid "build failed: ~a~%" msgstr "изградња није успела: ~a~%" -#: guix/ui.scm:198 -#, scheme-format -msgid "~a: ~a~%" -msgstr "~a: ~a~%" - -#: guix/ui.scm:207 +#: guix/ui.scm:257 #, scheme-format msgid "failed to read expression ~s: ~s~%" msgstr "нисам успео да прочитам израз ~s: ~s~%" -#: guix/ui.scm:213 +#: guix/ui.scm:263 #, scheme-format msgid "failed to evaluate expression `~a': ~s~%" msgstr "нисам успео да проценим израз „~a“: ~s~%" -#: guix/ui.scm:222 +#: guix/ui.scm:272 #, scheme-format msgid "expression ~s does not evaluate to a package~%" msgstr "израз „~s“ се не процењује на пакет~%" -#: guix/ui.scm:268 +#: guix/ui.scm:319 #, scheme-format msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]" msgstr "~:[Следећа изводница би требала бити изграђена:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:273 +#: guix/ui.scm:324 #, scheme-format msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[Следећа датотека би требала бити преузета:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:279 +#: guix/ui.scm:330 #, scheme-format msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" msgstr "~:[Следећа изводница ће бити изграђена:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:284 +#: guix/ui.scm:335 #, scheme-format msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]" msgstr "~:[Следећа датотека ће бити преузета:~%~{ ~a~%~}~;~]" -#: guix/ui.scm:301 +#: guix/ui.scm:352 msgid "" msgstr "<непознато место>" -#: guix/ui.scm:329 +#: guix/ui.scm:380 #, scheme-format msgid "failed to create configuration directory `~a': ~a~%" msgstr "нисам успео да направим директоријум подешавања „~a“: ~a~%" -#: guix/ui.scm:410 guix/ui.scm:424 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "непознато" -#: guix/ui.scm:533 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "неисправан аргумент: ~a~%" -#: guix/ui.scm:538 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Пробајте „guix --help“ за више података.~%" -#: guix/ui.scm:568 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1076,118 +1130,131 @@ msgstr "" "Употреба: guix НАРЕДБА АРГУМЕНТИ...\n" "Покрените НАРЕДБУ са АРГУМЕНТИМА.\n" -#: guix/ui.scm:571 +#: guix/ui.scm:636 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "НАРЕДБА мора бити једна од подкоманди наведених испод:\n" -#: guix/ui.scm:591 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: нисам пронашао наредбу~%" -#: guix/ui.scm:609 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: недостаје назив наредбе~%" -#: guix/ui.scm:617 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: непозната опција „~a“~%" -#: guix/http-client.scm:205 +#: guix/http-client.scm:217 #, scheme-format msgid "using Guile ~a, which does not support ~s encoding~%" msgstr "користим Гуиле ~a, који не подржава ~s кодирање~%" -#: guix/http-client.scm:208 +#: guix/http-client.scm:220 #, scheme-format msgid "download failed; use a newer Guile~%" msgstr "преузимање није успело; користите новији Гуиле~%" -#: guix/http-client.scm:220 +#: guix/http-client.scm:232 #, scheme-format msgid "following redirection to `~a'...~%" msgstr "пратим преусмеравање на „~a“...~%" -#: guix/http-client.scm:229 +#: guix/http-client.scm:241 msgid "download failed" msgstr "преузимање није успело" -#: guix/nar.scm:133 +#: guix/nar.scm:134 msgid "unexpected executable file marker" msgstr "неочекивани означавач извршне датотеке" -#: guix/nar.scm:140 +#: guix/nar.scm:141 msgid "unsupported nar file type" msgstr "неподржана врста нар датотеке" -#: guix/nar.scm:203 +#: guix/nar.scm:209 msgid "unsupported file type" msgstr "неподржана врста датотеке" -#: guix/nar.scm:213 +#: guix/nar.scm:219 msgid "invalid nar signature" msgstr "неисправан нар потпис" -#: guix/nar.scm:224 +#: guix/nar.scm:230 msgid "invalid nar end-of-file marker" msgstr "неисправан нар означавач краја датотеке" -#: guix/nar.scm:238 +#: guix/nar.scm:244 msgid "invalid symlink tokens" msgstr "неисправна обележја симболичке везе" -#: guix/nar.scm:257 +#: guix/nar.scm:263 msgid "unexpected directory entry termination" msgstr "неочекивано окончање уноса директоријума" -#: guix/nar.scm:266 +#: guix/nar.scm:272 msgid "unexpected directory inter-entry marker" msgstr "неочекивани означавач унутрашњег уноса директоријума " -#: guix/nar.scm:271 +#: guix/nar.scm:277 msgid "unsupported nar entry type" msgstr "неподржана врста нар уноса" -#: guix/nar.scm:381 +#: guix/nar.scm:376 msgid "signature is not a valid s-expression" msgstr "потпис није исправан с-израз" -#: guix/nar.scm:390 +#: guix/nar.scm:385 msgid "invalid signature" msgstr "неисправан потпис" -#: guix/nar.scm:394 +#: guix/nar.scm:389 msgid "invalid hash" msgstr "неисправан хеш" -#: guix/nar.scm:402 +#: guix/nar.scm:397 msgid "unauthorized public key" msgstr "неовлашћени јавни кључ" -#: guix/nar.scm:407 +#: guix/nar.scm:402 msgid "corrupt signature data" msgstr "оштећени подаци потписа" -#: guix/nar.scm:424 +#: guix/nar.scm:422 msgid "corrupt file set archive" msgstr "оштећена датотека скупа архиве" -#: guix/nar.scm:434 +#: guix/nar.scm:432 #, scheme-format msgid "importing file or directory '~a'...~%" msgstr "увозим датотеку или директоријум „~a“...~%" -#: guix/nar.scm:443 +#: guix/nar.scm:441 #, scheme-format msgid "found valid signature for '~a'~%" msgstr "нађох исправан потпис за „~a“~%" -#: guix/nar.scm:452 +#: guix/nar.scm:448 msgid "imported file lacks a signature" msgstr "увезеној датотеци недостаје потпис" -#: guix/nar.scm:459 +#: guix/nar.scm:487 msgid "invalid inter-file archive mark" msgstr "неисправан знак архиве унутрашње датотеке" + +#~ msgid "failed to load machine file '~a': ~s~%" +#~ msgstr "нисам успео да учитам датотеку машине „~a“: ~s~%" + +#~ msgid "" +#~ "Currently the only valid value for ACTION is 'vm', which builds\n" +#~ "a virtual machine of the given operating system.\n" +#~ msgstr "" +#~ "Тренутно једина исправна вредност за РАДЊУ је „vm“, која гради\n" +#~ "виртуелну машину датог оперативног система.\n" + +#~ msgid "~a: extraneous argument~%" +#~ msgstr "~a: страни аргумент~%" diff --git a/po/guix/vi.po b/po/guix/vi.po index 260032c9db..9bd407f2a2 100644 --- a/po/guix/vi.po +++ b/po/guix/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-07-13 17:06+0200\n" +"POT-Creation-Date: 2014-07-25 00:55+0200\n" "PO-Revision-Date: 2014-07-14 08:38+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" @@ -20,7 +20,7 @@ msgstr "" "X-Poedit-SourceCharset: UTF-8\n" "X-Generator: Poedit 1.5.5\n" -#: gnu/packages.scm:95 +#: gnu/packages.scm:102 #, scheme-format msgid "cannot access `~a': ~a~%" msgstr "không thể truy cập `~a': ~a~%" @@ -206,9 +206,9 @@ msgstr "" " --log-file trả về tên của tập-tin nhật ký cho dẫn xuất đã cho" #: guix/scripts/build.scm:246 guix/scripts/download.scm:53 -#: guix/scripts/package.scm:523 guix/scripts/gc.scm:58 +#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58 #: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82 -#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:334 +#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362 msgid "" "\n" " -h, --help display this help and exit" @@ -217,9 +217,9 @@ msgstr "" " -h, --help hiển thị trợ giúp này rồi thoát" #: guix/scripts/build.scm:248 guix/scripts/download.scm:55 -#: guix/scripts/package.scm:525 guix/scripts/gc.scm:60 +#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60 #: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84 -#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:336 +#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364 msgid "" "\n" " -V, --version display version information and exit" @@ -233,8 +233,8 @@ msgid "sources do not match any package:~{ ~a~}~%" msgstr "mã nguồn không khớp bất kỳ gói nào:~{ ~a~}~%" #: guix/scripts/build.scm:397 guix/scripts/download.scm:96 -#: guix/scripts/package.scm:756 guix/scripts/gc.scm:122 -#: guix/scripts/pull.scm:115 guix/scripts/system.scm:386 +#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122 +#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414 #, scheme-format msgid "~A: unrecognized option~%" msgstr "~A: tùy chọn không được chấp nhận~%" @@ -293,8 +293,8 @@ msgstr "gặp lỗi khi xây dựng hồ sơ trống rỗng~%" msgid "switching from generation ~a to ~a~%" msgstr "chuyển từ thế hệ ~a sang ~a~%" -#: guix/scripts/package.scm:108 guix/scripts/package.scm:866 -#: guix/scripts/package.scm:978 +#: guix/scripts/package.scm:108 guix/scripts/package.scm:873 +#: guix/scripts/package.scm:985 #, scheme-format msgid "profile '~a' does not exist~%" msgstr "hồ sơ `~a' không tồn tại~%" @@ -480,62 +480,71 @@ msgstr "" " -A, --list-available[=BIỂU-THỨC-CHÍNH-QUY]\n" " kiệt kê các gói khớp BTCQ" -#: guix/scripts/package.scm:760 +#: guix/scripts/package.scm:520 +#, fuzzy +msgid "" +"\n" +" --show=PACKAGE show details about PACKAGE" +msgstr "" +"\n" +" -i, --install=GÓI cài đặt GÓI" + +#: guix/scripts/package.scm:767 #, scheme-format msgid "~A: extraneous argument~%" msgstr "~A: đối số ngoại lai~%" -#: guix/scripts/package.scm:775 +#: guix/scripts/package.scm:782 #, scheme-format msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%" msgstr "Thử chạy lệnh \"info '(guix) Invoking guix package'\" để có thêm thông tin.~%" -#: guix/scripts/package.scm:797 +#: guix/scripts/package.scm:804 #, scheme-format msgid "error: while creating directory `~a': ~a~%" msgstr "lỗi: trong khi tạo thư mục `~a': ~a~%" -#: guix/scripts/package.scm:801 +#: guix/scripts/package.scm:808 #, scheme-format msgid "Please create the `~a' directory, with you as the owner.~%" msgstr "Hãy tạo thư mục `~a', với bạn là chủ sở hữu.~%" -#: guix/scripts/package.scm:808 +#: guix/scripts/package.scm:815 #, scheme-format msgid "error: directory `~a' is not owned by you~%" msgstr "lỗi: thư mục `~a' không được sở hữu bởi bạn~%" -#: guix/scripts/package.scm:811 +#: guix/scripts/package.scm:818 #, scheme-format msgid "Please change the owner of `~a' to user ~s.~%" msgstr "Vui lòng đổi chủ sở hữu của `~a' thành ~s.~%" -#: guix/scripts/package.scm:836 +#: guix/scripts/package.scm:843 #, scheme-format msgid "deleting ~a~%" msgstr "đang xóa ~a~%" -#: guix/scripts/package.scm:889 guix/scripts/package.scm:994 +#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001 #, scheme-format msgid "invalid syntax: ~a~%" msgstr "cú pháp không hợp lệ: ~a~%" -#: guix/scripts/package.scm:918 +#: guix/scripts/package.scm:925 #, scheme-format msgid "nothing to be done~%" msgstr "không có gì cần làm~%" -#: guix/scripts/package.scm:941 +#: guix/scripts/package.scm:948 #, scheme-format msgid "~a package in profile~%" msgstr "~a gói trong hồ sơ~%" -#: guix/scripts/package.scm:956 +#: guix/scripts/package.scm:963 #, scheme-format msgid "Generation ~a\t~a" msgstr "Tạo ~a\t~a" -#: guix/scripts/package.scm:963 +#: guix/scripts/package.scm:970 #, scheme-format msgid "~a\t(current)~%" msgstr "~a\t(hiện tại)~%" @@ -868,37 +877,37 @@ msgstr "~a: ~a~%" msgid "failed to load operating system file '~a': ~s~%" msgstr "gặp lỗi khi tải tập tin hệ điều hành `~a': ~s~%" -#: guix/scripts/system.scm:111 +#: guix/scripts/system.scm:116 #, scheme-format msgid "failed to register '~a' under '~a'~%" msgstr "gặp lỗi khi đăng ký `~a' dưới ~a~%" -#: guix/scripts/system.scm:127 +#: guix/scripts/system.scm:144 #, scheme-format msgid "initializing the current root file system~%" msgstr "đang khởi tạo hệ thống tập tin gốc hiện tại~%" -#: guix/scripts/system.scm:151 guix/scripts/system.scm:291 +#: guix/scripts/system.scm:162 guix/scripts/system.scm:318 #, scheme-format msgid "failed to install GRUB on device '~a'~%" msgstr "gặp lỗi khi cài đặt GRUB trên thiết bị `~a'~%" -#: guix/scripts/system.scm:176 +#: guix/scripts/system.scm:197 #, scheme-format msgid "activating system...~%" msgstr "đang kích hoạt hệ thống...~%" -#: guix/scripts/system.scm:211 +#: guix/scripts/system.scm:236 #, scheme-format msgid "unrecognized boot parameters for '~a'~%" msgstr "tham số khởi động không được thừa nhận cho `~a'~%" -#: guix/scripts/system.scm:295 +#: guix/scripts/system.scm:323 #, scheme-format msgid "initializing operating system under '~a'...~%" msgstr "đang khởi tạo hệ điều hành dưới '~a'...~%" -#: guix/scripts/system.scm:311 +#: guix/scripts/system.scm:339 msgid "" "Usage: guix system [OPTION] ACTION FILE\n" "Build the operating system declared in FILE according to ACTION.\n" @@ -906,35 +915,35 @@ msgstr "" "Cách dùng: guix system [TÙY-CHỌN] THAO-TÁC TẬP-TIN\n" "Xây dựng hệ điều hành khai báo trong TẬP-TIN tuân theo THAO-TÁC.\n" -#: guix/scripts/system.scm:314 +#: guix/scripts/system.scm:342 msgid "The valid values for ACTION are:\n" msgstr "Các giá trị hợp lệ cho THAO TÁC là:\n" -#: guix/scripts/system.scm:315 +#: guix/scripts/system.scm:343 msgid " - 'reconfigure', switch to a new operating system configuration\n" msgstr " - 'reconfigure', chuyển thành cấu hình hệ điều hành mới\n" -#: guix/scripts/system.scm:317 +#: guix/scripts/system.scm:345 msgid " - 'build', build the operating system without installing anything\n" msgstr " - 'build', xây dựng hệ điều hành mà không cài gì\n" -#: guix/scripts/system.scm:319 +#: guix/scripts/system.scm:347 msgid " - 'vm', build a virtual machine image that shares the host's store\n" msgstr " - 'vm', xây dựng một ảnh máy ảo kiểu mà có thể chia sẻ trên kho máy\n" -#: guix/scripts/system.scm:321 +#: guix/scripts/system.scm:349 msgid " - 'vm-image', build a freestanding virtual machine image\n" msgstr " - 'vm-image', xây dựng một ảnh máy ảo đứng tự do\n" -#: guix/scripts/system.scm:323 +#: guix/scripts/system.scm:351 msgid " - 'disk-image', build a disk image, suitable for a USB stick\n" msgstr " - 'disk-image', xây dựng ảnh đĩa, phù hợp để dùng cho đĩa USB\n" -#: guix/scripts/system.scm:325 +#: guix/scripts/system.scm:353 msgid " - 'init', initialize a root file system to run GNU.\n" msgstr " - 'init', khởi tạo một hệ thống tập tin gốc để chạy GNU.\n" -#: guix/scripts/system.scm:329 +#: guix/scripts/system.scm:357 msgid "" "\n" " --image-size=SIZE for 'vm-image', produce an image of SIZE" @@ -942,7 +951,7 @@ msgstr "" "\n" " --image-size=CỠ cho 'vm-image', sản sinh ảnh theo CỠ này" -#: guix/scripts/system.scm:331 +#: guix/scripts/system.scm:359 msgid "" "\n" " --no-grub for 'init', do not install GRUB" @@ -950,17 +959,17 @@ msgstr "" "\n" " --no-grub dành cho 'init', đừng cài GRUB" -#: guix/scripts/system.scm:394 +#: guix/scripts/system.scm:422 #, scheme-format msgid "~a: unknown action~%" msgstr "~a: không hiểu thao tác~%" -#: guix/scripts/system.scm:411 +#: guix/scripts/system.scm:439 #, scheme-format msgid "wrong number of arguments for action '~a'~%" msgstr "sai số lượng đối số cho thao tác '~a'~%" -#: guix/scripts/system.scm:431 +#: guix/scripts/system.scm:459 #, scheme-format msgid "no configuration file specified~%" msgstr "chưa ghi rõ tập tin nhập cấu hình~%" @@ -1107,21 +1116,21 @@ msgstr "" msgid "failed to create configuration directory `~a': ~a~%" msgstr "gặp lỗi khi tạo thư mục cấu hình `~a': ~a~%" -#: guix/ui.scm:461 guix/ui.scm:475 +#: guix/ui.scm:475 guix/ui.scm:489 msgid "unknown" msgstr "không hiểu" -#: guix/ui.scm:584 +#: guix/ui.scm:598 #, scheme-format msgid "invalid argument: ~a~%" msgstr "đối số không hợp lệ: ~a~%" -#: guix/ui.scm:589 +#: guix/ui.scm:603 #, scheme-format msgid "Try `guix --help' for more information.~%" msgstr "Chạy lệnh `guix --help' để biết thêm thông tin.~%" -#: guix/ui.scm:619 +#: guix/ui.scm:633 msgid "" "Usage: guix COMMAND ARGS...\n" "Run COMMAND with ARGS.\n" @@ -1129,21 +1138,21 @@ msgstr "" "Cách dùng: guix LỆNH ĐỐI_SỐ...\n" "Chạy LỆNH với các ĐỐI SỐ.\n" -#: guix/ui.scm:622 +#: guix/ui.scm:636 msgid "COMMAND must be one of the sub-commands listed below:\n" msgstr "LỆNH phải là một trong số những câu lệnh con được liệt kê dưới đây:\n" -#: guix/ui.scm:642 +#: guix/ui.scm:656 #, scheme-format msgid "guix: ~a: command not found~%" msgstr "guix: ~a: không tìm thấy lệnh~%" -#: guix/ui.scm:660 +#: guix/ui.scm:674 #, scheme-format msgid "guix: missing command name~%" msgstr "guix: thiếu tên lệnh~%" -#: guix/ui.scm:668 +#: guix/ui.scm:682 #, scheme-format msgid "guix: unrecognized option '~a'~%" msgstr "guix: tùy chọn không được thừa nhận `~a'~%" diff --git a/po/packages/de.po b/po/packages/de.po index 01542d4597..32e38705c2 100644 --- a/po/packages/de.po +++ b/po/packages/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: guix-packages 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-25 22:55+0200\n" +"POT-Creation-Date: 2014-07-14 11:59+0200\n" "PO-Revision-Date: 2014-07-13 20:23+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" diff --git a/po/packages/eo.po b/po/packages/eo.po index 44212fee62..2e48d61064 100644 --- a/po/packages/eo.po +++ b/po/packages/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: guix-packages 0.7-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-25 22:55+0200\n" +"POT-Creation-Date: 2014-07-14 11:59+0200\n" "PO-Revision-Date: 2014-07-14 11:28-0300\n" "Last-Translator: Felipe Castro \n" "Language-Team: Esperanto \n" diff --git a/po/packages/pt_BR.po b/po/packages/pt_BR.po index 8c56c982ab..47d8fc2fe0 100644 --- a/po/packages/pt_BR.po +++ b/po/packages/pt_BR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.4-pre2\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-25 22:55+0200\n" +"POT-Creation-Date: 2014-07-14 11:59+0200\n" "PO-Revision-Date: 2013-09-28 21:29-0300\n" "Last-Translator: Rafael Ferreira \n" "Language-Team: Brazilian Portuguese \n" diff --git a/po/packages/sr.po b/po/packages/sr.po index 2fc7f43181..c49787a5b6 100644 --- a/po/packages/sr.po +++ b/po/packages/sr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: guix-0.6-pre1\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-25 22:55+0200\n" +"POT-Creation-Date: 2014-07-14 11:59+0200\n" "PO-Revision-Date: 2014-06-19 08:51+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <(nothing)>\n" diff --git a/po/packages/vi.po b/po/packages/vi.po index 6c8f74f179..cc55fd591a 100644 --- a/po/packages/vi.po +++ b/po/packages/vi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: guix 0.5-pre2\n" "Report-Msgid-Bugs-To: ludo@gnu.org\n" -"POT-Creation-Date: 2014-06-25 22:55+0200\n" +"POT-Creation-Date: 2014-07-14 11:59+0200\n" "PO-Revision-Date: 2013-12-04 07:48+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" From 508ea01ef20652fb2de875d1d91c27f5178e2874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 01:01:51 +0200 Subject: [PATCH 57/75] Update NEWS. --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index bf920e22ad..76a06a7573 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,12 @@ Please send Guix bug reports to bug-guix@gnu.org. * Changes in 0.7 (since 0.6) ** Package management +*** Binaries for mips64el-linux now available from hydra.gnu.org + +These come in addition to the x86_64-linux and i686-linux binaries already +provided, thanks to our generous donor and friendly admins. See +“Substitutes” in the manual. + *** ‘guix package’ has a new ‘--show’ option *** ‘guix refresh’ has a new ‘--list-dependent’ option From aaf77acc1a751a2001d0a8503ba61740299581a5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 24 Jul 2014 23:06:49 -0400 Subject: [PATCH 58/75] gnu: boost: Omit context and coroutines libraries on mips64el. * gnu/packages/boost.scm (boost): Omit context and coroutines libraries on mips64el. --- gnu/packages/boost.scm | 68 ++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 73b377e384..a77f1393d9 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,39 +47,48 @@ ("python" ,python-2) ("tcsh" ,tcsh))) (arguments - `(#:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* '("libs/config/configure" - "libs/spirit/classic/phoenix/test/runtest.sh" - "tools/build/v2/doc/bjam.qbk" - "tools/build/v2/engine/execunix.c" - "tools/build/v2/engine/Jambase" - "tools/build/v2/engine/jambase.c") - (("/bin/sh") (which "sh"))) - - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - - (zero? (system* "./bootstrap.sh" - (string-append "--prefix=" out) - "--with-toolset=gcc")))) - (alist-replace - 'build - (lambda _ - (zero? (system* "./b2" "threading=multi" "link=shared"))) - + (let ((build-flags + `("threading=multi" "link=shared" + ;; Boost's 'context' library is not yet supported on mips64, so + ;; we disable it. The 'coroutine' library depends on 'context', + ;; so we disable that too. + ,@(if (equal? "mips64el-linux" (or (%current-target-system) + (%current-system))) + '("--without-context" "--without-coroutine") + '())))) + `(#:phases (alist-replace - 'check - (lambda _ #t) + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* '("libs/config/configure" + "libs/spirit/classic/phoenix/test/runtest.sh" + "tools/build/v2/doc/bjam.qbk" + "tools/build/v2/engine/execunix.c" + "tools/build/v2/engine/Jambase" + "tools/build/v2/engine/jambase.c") + (("/bin/sh") (which "sh"))) + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + + (zero? (system* "./bootstrap.sh" + (string-append "--prefix=" out) + "--with-toolset=gcc")))) (alist-replace - 'install + 'build (lambda _ - (zero? (system* "./b2" "install" "threading=multi" "link=shared"))) - %standard-phases)))))) + (zero? (system* "./b2" ,@build-flags))) + + (alist-replace + 'check + (lambda _ #t) + + (alist-replace + 'install + (lambda _ + (zero? (system* "./b2" "install" ,@build-flags))) + %standard-phases))))))) (home-page "http://boost.org") (synopsis "Peer-reviewed portable C++ source libraries") From 2f4640e320a8834f618c7be5a7e8dba62da91190 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 24 Jul 2014 23:32:13 -0400 Subject: [PATCH 59/75] gnu: texlive: Disable tests on mips64el. * gnu/packages/texlive.scm (texlive): Disable tests on mips64el. --- gnu/packages/texlive.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm index b136c99979..57a250cba2 100644 --- a/gnu/packages/texlive.scm +++ b/gnu/packages/texlive.scm @@ -115,6 +115,11 @@ "--with-system-xpdf" "--with-system-zlib" "--with-system-zziplib") + + ;; Disable tests on mips64 to cope with a failure of luajiterr.test. + ;; XXX FIXME fix luajit properly on mips64. + #:tests? ,(not (equal? "mips64el-linux" (or (%current-target-system) + (%current-system)))) #:phases (alist-cons-after 'install 'postinst From 445d652916b4ffe337b2d1c7bfd2df70b925f486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 13:35:12 +0200 Subject: [PATCH 60/75] doc: Fix typo in USB image file name. * doc/guix.texi (System Installation): Change image file name. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index cef2aba9a8..b1c0a4961c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2783,7 +2783,7 @@ its device name. Assuming that USB stick is known as @file{/dev/sdX}, copy the image with: @example -dd if=gnu-usb-install-20140629.x86_64 of=/dev/sdX +dd if=gnu-usb-install-@value{VERSION}.x86_64 of=/dev/sdX @end example Access to @file{/dev/sdX} usually requires root privileges. From 5f28f6aab4b6ed0d87283823e707088d683e00aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 13:38:16 +0200 Subject: [PATCH 61/75] build: Bump to version 0.8. * configure.ac: Switch to 0.8. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index e9fd1699b7..71b3ddacaa 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.68) -AC_INIT([GNU Guix], [0.7], [bug-guix@gnu.org], [guix], +AC_INIT([GNU Guix], [0.8], [bug-guix@gnu.org], [guix], [http://www.gnu.org/software/guix/]) AC_CONFIG_AUX_DIR([build-aux]) From 7eade0ee035578d172e8812d1f06e25744308ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 13:46:30 +0200 Subject: [PATCH 62/75] gnu: guix: Update to 0.7. * gnu/packages/package-management.scm (guix-0.6): Rename to... (guix-0.7): ... this. Upgrade to 0.7. (guix): Alias for GUIX-0.7. (guix-devel): Change 'guix-0.6' to 'guix-0.7'. --- gnu/packages/package-management.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index cf808970ce..66e71df284 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -34,17 +34,17 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages texinfo)) -(define-public guix-0.6 +(define guix-0.7 (package (name "guix") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" version ".tar.gz")) (sha256 (base32 - "01xw51wizhsk827w4xp79k2b6dxjaviw04r6rbrb85qdxnwg6k9n")))) + "05r7bsjgc0a4m7yy433n3c1dlv2yqlf3qpwlhayn9djhpp2q1ssb")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list @@ -109,10 +109,12 @@ upgrades and roll-backs, per-user profiles, and much more. It is based on the Nix package manager.") (license gpl3+))) -(define-public guix +(define-public guix guix-0.7) + +(define-public guix-devel ;; Development version of Guix. (let ((commit "0ae8c15")) - (package (inherit guix-0.6) + (package (inherit guix-0.7) (version (string-append "0.6." commit)) (source (origin (method git-fetch) @@ -124,7 +126,7 @@ Nix package manager.") (base32 "1y6mwzwsjdxbfibqypb55dix371rifhfz0bygfr8k868lcdsawic")))) (arguments - (substitute-keyword-arguments (package-arguments guix-0.6) + (substitute-keyword-arguments (package-arguments guix-0.7) ((#:phases phases) `(alist-cons-before 'configure 'bootstrap @@ -160,4 +162,4 @@ Nix package manager.") ("gettext" ,gnu-gettext) ("texinfo" ,texinfo) ("graphviz" ,graphviz) - ,@(package-native-inputs guix-0.6)))))) + ,@(package-native-inputs guix-0.7)))))) From 5e6feee61793a6b60aa352dcdbbed0155eb42e7f Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 25 Jul 2014 07:38:20 -0500 Subject: [PATCH 63/75] guix: package: Fix recutils output for non-package inputs. * guix/ui.scm (package->recutils)[dependencies]: Ignore non-package inputs. * tests/guix-package.sh: New test. --- guix/ui.scm | 4 ++-- tests/guix-package.sh | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 1b7d334757..9112d55daf 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -468,8 +468,8 @@ WIDTH columns." (format port "version: ~a~%" (package-version p)) (format port "dependencies: ~a~%" (match (package-direct-inputs p) - (((labels packages . _) ...) - (dependencies->recutils packages)))) + (((labels inputs . _) ...) + (dependencies->recutils (filter package? inputs))))) (format port "location: ~a~%" (or (and=> (package-location p) location->string) (_ "unknown"))) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 99debb936b..e8ff7a88a8 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -179,6 +179,9 @@ guix package -p "$profile" -A 'gui.*e' | grep guile # Check whether `--show' returns something sensible. guix package --show=guile | grep "^name: guile" +# Check show doesn't fail for packages with non-package inputs. +guix package --show=texlive + # There's no generation older than 12 months, so the following command should # have no effect. generation="`readlink_base "$profile"`" From d43f4296ccdf4587266c88a7c3e116e720eaddd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 17:47:53 +0200 Subject: [PATCH 64/75] gnu: Add dmidecode. * gnu/packages/admin.scm (dmidecode): New variable. --- gnu/packages/admin.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 9fef60d761..46f5cc8a58 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -762,3 +762,33 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.") "WakeLan broadcasts a properly formatted UDP packet across the local area network, which causes enabled computers to power on.") (license gpl2+))) + +(define-public dmidecode + (package + (name "dmidecode") + (version "2.12") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://savannah/dmidecode/dmidecode-" + version ".tar.bz2")) + (sha256 + (base32 + "122hgaw8mpqdfra159lfl6pyk3837giqx6vq42j64fjnbl2z6gwi")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-delete 'configure %standard-phases) + #:tests? #f ; no 'check' target + #:make-flags (list (string-append "prefix=" + (assoc-ref %outputs "out"))))) + (home-page "http://www.nongnu.org/dmidecode/") + (synopsis "Read hardware information from the BIOS") + (description + "Dmidecode reports information about your system's hardware as described +in your system BIOS according to the SMBIOS/DMI standard. This typically +includes system manufacturer, model name, serial number, BIOS version, asset +tag as well as a lot of other details of varying level of interest and +reliability depending on the manufacturer. This will often include usage +status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory +module slots, and the list of I/O ports (e.g. serial, parallel, USB).") + (license gpl2+))) From 1b0a86dd1d4f4b010535ca7853ed35534002bd5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 17:56:14 +0200 Subject: [PATCH 65/75] tests: Make sure --search="" works. * tests/guix-package.sh: Move '-s' tests outside of the network-only section. Make sure --search="" works. --- tests/guix-package.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index e8ff7a88a8..ce123105bf 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -79,13 +79,6 @@ then test "`guix package -p "$profile" -I 'g.*e' | cut -f1`" = "guile-bootstrap" - # Search. - LC_MESSAGES=C - export LC_MESSAGES - test "`guix package -s "An example GNU package" | grep ^name:`" = \ - "name: hello" - test -z "`guix package -s "n0t4r341p4ck4g3"`" - # List generations. test "`guix package -p "$profile" -l | cut -f1 | grep guile | head -n1`" \ = " guile-bootstrap" @@ -179,9 +172,19 @@ guix package -p "$profile" -A 'gui.*e' | grep guile # Check whether `--show' returns something sensible. guix package --show=guile | grep "^name: guile" -# Check show doesn't fail for packages with non-package inputs. +# Ensure `--show' doesn't fail for packages with non-package inputs. guix package --show=texlive +# Search. +LC_MESSAGES=C +export LC_MESSAGES +test "`guix package -s "An example GNU package" | grep ^name:`" = \ + "name: hello" +test -z "`guix package -s "n0t4r341p4ck4g3"`" + +# Make sure `--search' can display all the packages. +guix package --search="" > /dev/null + # There's no generation older than 12 months, so the following command should # have no effect. generation="`readlink_base "$profile"`" From 936229930fbde1cff24412cd0440f4bfec50c4ae Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 25 Jul 2014 15:48:25 -0400 Subject: [PATCH 66/75] gnu: libpeas: Adjust to glib "bin" split. * gnu/packages/gnome.scm (libpeas): Add glib:bin to 'native-inputs'. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 893c3e8a6b..f5a0cd7de7 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -449,6 +449,7 @@ some form of information without getting in the user's way.") ("pango" ,pango))) (native-inputs `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool))) (home-page "https://wiki.gnome.org/Libpeas") From 6621cdb65c09e8e7b428ccbc8d02e084420dde52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 22:05:17 +0200 Subject: [PATCH 67/75] doc: Replace incorrect uses of @ref by @pxref. * doc/guix.texi: Use @pxref at the end of sentences, not @ref. --- doc/guix.texi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b1c0a4961c..b0f4e1ad81 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -131,7 +131,7 @@ ready to use it. Note that this section is concerned with the installation of the package manager, which can be done on top of a running GNU/Linux system. If, instead, you want to install the complete GNU operating system, -@ref{System Installation}. +@pxref{System Installation}. The build procedure for Guix is the same as for other GNU software, and is not covered here. Please see the files @file{README} and @@ -1818,7 +1818,7 @@ As can be guessed, this primitive is cumbersome to use directly. A better approach is to write build scripts in Scheme, of course! The best course of action for that is to write the build code as a ``G-expression'', and to pass it to @code{gexp->derivation}. For more -information, @ref{G-Expressions}. +information, @pxref{G-Expressions}. Once upon a time, @code{gexp->derivation} did not exist and constructing derivations with build code written in Scheme was achieved with @@ -2696,14 +2696,14 @@ to join! @ref{Contributing}, for information about how you can help. This section explains how to install the complete GNU operating system on a machine. The Guix package manager can also be installed on top of -a running GNU/Linux system, @ref{Installation}. +a running GNU/Linux system, @pxref{Installation}. @ifinfo @c This paragraph is for people reading this from tty2 of the @c installation image. You're reading this documentation with an Info reader. For details on how to use it, hit the @key{RET} key (``return'' or ``enter'') on the -link that follows: @ref{Help,,, info, Info: An Introduction}. Hit +link that follows: @pxref{Help,,, info, Info: An Introduction}. Hit @kbd{l} afterwards to come back here. @end ifinfo @@ -2861,7 +2861,7 @@ this example is available as @file{/etc/configuration-template.scm}): @noindent For more information on @code{operating-system} declarations, -@xref{Using the Configuration System}. +@pxref{Using the Configuration System}. Once that is done, the new system must be initialized (remember that the target root file system is mounted under @file{/mnt}): @@ -2873,7 +2873,7 @@ guix system init /mnt/etc/config.scm /mnt @noindent This will copy all the necessary files, and install GRUB on @file{/dev/sdX}, unless you pass the @option{--no-grub} option. For -more information, @xref{Invoking guix system}. This command may trigger +more information, @pxref{Invoking guix system}. This command may trigger downloads or builds of missing packages, which can take some time. Once that command has completed---and hopefully succeeded!---you can From ff838e2ce64dccd79ad275d4fc314f7f0feb9947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 25 Jul 2014 23:19:23 +0200 Subject: [PATCH 68/75] profiles: Remove dead code. * guix/profiles.scm (write-manifest): Remove. (read-manifest): Keep private. --- guix/profiles.scm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index c1fa8272ba..8dd04b81c0 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -45,9 +45,6 @@ manifest-pattern manifest-pattern? - read-manifest - write-manifest - manifest-remove manifest-installed? manifest-matching-entries @@ -157,10 +154,6 @@ "Return the packages listed in MANIFEST." (sexp->manifest (read port))) -(define (write-manifest manifest port) - "Write MANIFEST to PORT." - (write (manifest->sexp manifest) port)) - (define (entry-predicate pattern) "Return a procedure that returns #t when passed a manifest entry that matches NAME/OUTPUT/VERSION. OUTPUT and VERSION may be #f, in which case they From f8984634fdabc9969bacba754a4cbc2d8738c477 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 26 Jul 2014 16:08:35 -0400 Subject: [PATCH 69/75] gnu: sudo: Apply workaround to build system for MIPS. * gnu/packages/admin.scm (sudo): Work around the fact that configure fails on MIPS without 'file'. --- gnu/packages/admin.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 46f5cc8a58..4a88fdd76a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -630,7 +630,7 @@ system administrator.") "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--with-logpath=/var/log/sudo.log") + `(#:configure-flags '("--with-logpath=/var/log/sudo.log") #:phases (alist-cons-before 'configure 'pre-configure (lambda _ @@ -644,7 +644,18 @@ system administrator.") "") (("^install: (.*)install-sudoers(.*)" _ before after) ;; Don't try to create /etc/sudoers. - (string-append "install: " before after "\n")))) + (string-append "install: " before after "\n"))) + + ;; XXX FIXME sudo 1.8.10p3 was bootstrapped with a + ;; prerelease libtool, which fails on MIPS in the absence + ;; of /usr/bin/file. As a temporary workaround, we patch + ;; the configure script to hardcode use of the little + ;; endian N32 ABI on MIPS. + ,@(if (equal? "mips64el-linux" (or (%current-target-system) + (%current-system))) + '((substitute* "configure" + (("\\$emul") "elf32ltsmipn32"))) + '())) %standard-phases) ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but From f280cdb1bafefee42d0c573ecabb0d9bd0659e64 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 26 Jul 2014 16:44:26 -0400 Subject: [PATCH 70/75] gnu: goffice: Adapt to glib "bin" split. * gnu/packages/gnome.scm (goffice): Add glib:bin to 'native-inputs'. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f5a0cd7de7..153bd39c96 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1139,6 +1139,7 @@ controls using the Bonobo component framework.") ("libxml2" ,libxml2))) (native-inputs `(("intltool" ,intltool) + ("glib" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "https://developer.gnome.org/goffice/") (synopsis "Document-centric objects and utilities") From 48704e5b5c9a18a3f381ec5a266d0375219ae122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 26 Jul 2014 21:43:43 +0200 Subject: [PATCH 71/75] =?UTF-8?q?profiles:=20Do=20away=20with=20'manifest?= =?UTF-8?q?=3D=3F'.?= * guix/profiles.scm (manifest=?): Remove. * guix/scripts/package.scm (readlink*): New procedure. (guix-package)[process-actions]: Use 'readlink*' and compare the profile to be built, PROF, with PROFILE to determine whether there's nothing to be done. --- guix/profiles.scm | 8 ----- guix/scripts/package.scm | 70 ++++++++++++++++++++++++---------------- 2 files changed, 42 insertions(+), 36 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 8dd04b81c0..91fc2fa435 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -48,7 +48,6 @@ manifest-remove manifest-installed? manifest-matching-entries - manifest=? profile-manifest profile-derivation @@ -196,13 +195,6 @@ must be a manifest-pattern." (filter matches? (manifest-entries manifest))) -(define (manifest=? m1 m2) - "Return #t if manifests M1 and M2 are equal. This differs from 'equal?' in -that the 'inputs' field is ignored for the comparison, since it is know to -have no effect on the manifest contents." - (equal? (manifest->sexp m1) - (manifest->sexp m2))) - ;;; ;;; Profiles. diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 0d17414b4f..36e025d479 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -750,6 +750,16 @@ removed from MANIFEST." (unless (string=? profile %current-profile) (add-indirect-root store (canonicalize-path profile)))) +(define (readlink* file) + "Call 'readlink' until the result is not a symlink." + (catch 'system-error + (lambda () + (readlink* (readlink file))) + (lambda args + (if (= EINVAL (system-error-errno args)) + file + (apply throw args))))) + ;;; ;;; Entry point. @@ -921,36 +931,40 @@ more information.~%")) (when (equal? profile %current-profile) (ensure-default-profile)) - (if (manifest=? new manifest) - (format (current-error-port) (_ "nothing to be done~%")) - (let ((prof-drv (profile-derivation (%store) new)) - (remove (manifest-matching-entries manifest remove))) - (show-what-to-remove/install remove install dry-run?) - (show-what-to-build (%store) (list prof-drv) - #:use-substitutes? - (assoc-ref opts 'substitutes?) - #:dry-run? dry-run?) + (unless (and (null? install) (null? remove)) + (let* ((prof-drv (profile-derivation (%store) new)) + (prof (derivation->output-path prof-drv)) + (remove (manifest-matching-entries manifest remove))) + (show-what-to-remove/install remove install dry-run?) + (show-what-to-build (%store) (list prof-drv) + #:use-substitutes? + (assoc-ref opts 'substitutes?) + #:dry-run? dry-run?) - (or dry-run? - (let* ((prof (derivation->output-path prof-drv)) - (number (generation-number profile)) + (cond + (dry-run? #t) + ((and (file-exists? profile) + (and=> (readlink* profile) (cut string=? prof <>))) + (format (current-error-port) (_ "nothing to be done~%"))) + (else + (let* ((number (generation-number profile)) - ;; Always use NUMBER + 1 for the new profile, - ;; possibly overwriting a "previous future - ;; generation". - (name (generation-file-name profile - (+ 1 number)))) - (and (build-derivations (%store) (list prof-drv)) - (let ((count (length entries))) - (switch-symlinks name prof) - (switch-symlinks profile name) - (maybe-register-gc-root (%store) profile) - (format #t (N_ "~a package in profile~%" - "~a packages in profile~%" - count) - count) - (display-search-paths entries - profile))))))))))) + ;; Always use NUMBER + 1 for the new profile, + ;; possibly overwriting a "previous future + ;; generation". + (name (generation-file-name profile + (+ 1 number)))) + (and (build-derivations (%store) (list prof-drv)) + (let ((count (length entries))) + (switch-symlinks name prof) + (switch-symlinks profile name) + (maybe-register-gc-root (%store) profile) + (format #t (N_ "~a package in profile~%" + "~a packages in profile~%" + count) + count) + (display-search-paths entries + profile)))))))))))) (define (process-query opts) ;; Process any query specified by OPTS. Return #t when a query was From a54c94a40d3d87c80034793795bf13fd7abf7a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 26 Jul 2014 22:08:10 +0200 Subject: [PATCH 72/75] profiles: Switch to gexps. * guix/profiles.scm ()[path]: Rename to... [item]: ... this. Update users. (manifest->sexp): Rename to... (manifest->gexp): ... this. Return a gexp. (lower-input): Remove. (profile-derivation): Remove 'store' parameter, and turn into a monadic procedure. [inputs]: New variable. [builder]: Turn into a gexp. Replace call to 'build-expression->derivation' with call to 'gexp->derivation'. * guix/scripts/package.scm (link-to-empty-profile): Adjust call to 'profile-derivation', and wrap it in 'run-with-store'. (show-what-to-remove/install): Rename 'path' to 'item'. Check whether ITEM is a package, and return its output path if it is. (input->name+path): Remove. (options->installable): Set 'item' to P. (guix-package): Adjust call to 'profile-derivation'. * tests/profiles.scm (guile-2.0.9): Change 'path' to 'item'. --- guix/profiles.scm | 94 +++++++++++++++++++--------------------- guix/scripts/package.scm | 35 +++++++-------- tests/profiles.scm | 4 +- 3 files changed, 62 insertions(+), 71 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 91fc2fa435..64c69c4429 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -22,6 +22,7 @@ #:use-module (guix records) #:use-module (guix derivations) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 ftw) @@ -39,7 +40,7 @@ manifest-entry-name manifest-entry-version manifest-entry-output - manifest-entry-path + manifest-entry-item manifest-entry-dependencies manifest-pattern @@ -84,7 +85,7 @@ (version manifest-entry-version) ; string (output manifest-entry-output ; string (default "out")) - (path manifest-entry-path) ; store path + (item manifest-entry-item) ; package | store path (dependencies manifest-entry-dependencies ; list of store paths (default '())) (inputs manifest-entry-inputs ; list of inputs to build @@ -106,17 +107,20 @@ (call-with-input-file file read-manifest) (manifest '())))) -(define (manifest->sexp manifest) - "Return a representation of MANIFEST as an sexp." - (define (entry->sexp entry) +(define (manifest->gexp manifest) + "Return a representation of MANIFEST as a gexp." + (define (entry->gexp entry) (match entry - (($ name version path output (deps ...)) - (list name version path output deps)))) + (($ name version output (? string? path) (deps ...)) + #~(#$name #$version #$output #$path #$deps)) + (($ name version output (? package? package) (deps ...)) + #~(#$name #$version #$output + (ungexp package (or output "out")) #$deps)))) (match manifest (($ (entries ...)) - `(manifest (version 1) - (packages ,(map entry->sexp entries)))))) + #~(manifest (version 1) + (packages #$(map entry->gexp entries)))))) (define (sexp->manifest sexp) "Parse SEXP as a manifest." @@ -129,7 +133,7 @@ (name name) (version version) (output output) - (path path))) + (item path))) name version output path))) ;; Version 1 adds a list of propagated inputs to the @@ -142,7 +146,7 @@ (name name) (version version) (output output) - (path path) + (item path) (dependencies deps))) name version output path deps))) @@ -200,50 +204,42 @@ must be a manifest-pattern." ;;; Profiles. ;;; -(define* (lower-input store input #:optional (system (%current-system))) - "Lower INPUT so that it contains derivations instead of packages." - (match input - ((name (? package? package)) - `(,name ,(package-derivation store package system))) - ((name (? package? package) output) - `(,name ,(package-derivation store package system) - ,output)) - (_ input))) - -(define (profile-derivation store manifest) +(define (profile-derivation manifest) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST." + (define inputs + (append-map (match-lambda + (($ name version + output path deps (inputs ..1)) + inputs) + (($ name version output path deps) + ;; Assume PATH and DEPS are already valid. + `((,name ,path) ,@deps))) + (manifest-entries manifest))) + (define builder - `(begin - (use-modules (ice-9 pretty-print) - (guix build union)) + #~(begin + (use-modules (ice-9 pretty-print) + (guix build union)) - (setvbuf (current-output-port) _IOLBF) - (setvbuf (current-error-port) _IOLBF) + (setvbuf (current-output-port) _IOLBF) + (setvbuf (current-error-port) _IOLBF) - (let ((output (assoc-ref %outputs "out")) - (inputs (map cdr %build-inputs))) - (union-build output inputs - #:log-port (%make-void-port "w")) - (call-with-output-file (string-append output "/manifest") - (lambda (p) - (pretty-print ',(manifest->sexp manifest) p)))))) + (let ((inputs '#$(map (match-lambda + ((label thing) + thing) + ((label thing output) + `(,thing ,output))) + inputs))) + (union-build #$output inputs + #:log-port (%make-void-port "w")) + (call-with-output-file (string-append #$output "/manifest") + (lambda (p) + (pretty-print '#$(manifest->gexp manifest) p)))))) - (build-expression->derivation store "profile" builder - #:inputs - (append-map (match-lambda - (($ name version - output path deps (inputs ..1)) - (map (cute lower-input store <>) - inputs)) - (($ name version - output path deps) - ;; Assume PATH and DEPS are - ;; already valid. - `((,name ,path) ,@deps))) - (manifest-entries manifest)) - #:modules '((guix build union)) - #:local-build? #t)) + (gexp->derivation "profile" builder + #:modules '((guix build union)) + #:local-build? #t)) (define (profile-regexp profile) "Return a regular expression that matches PROFILE's name and number." diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 36e025d479..bc2c854853 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -24,6 +24,7 @@ #:use-module (guix derivations) #:use-module (guix packages) #:use-module (guix profiles) + #:use-module (guix monads) #:use-module (guix utils) #:use-module (guix config) #:use-module (guix scripts build) @@ -82,7 +83,8 @@ return PROFILE unchanged. The goal is to treat '-p ~/.guix-profile' as if (define (link-to-empty-profile generation) "Link GENERATION, a string, to the empty profile." - (let* ((drv (profile-derivation (%store) (manifest '()))) + (let* ((drv (run-with-store (%store) + (profile-derivation (manifest '())))) (prof (derivation->output-path drv "out"))) (when (not (build-derivations (%store) (list drv))) (leave (_ "failed to build the empty profile~%"))) @@ -205,10 +207,14 @@ packages that will/would be installed and removed." remove)))) (_ #f)) (match install - ((($ name version output path _) ..1) + ((($ name version output item _) ..1) (let ((len (length name)) - (install (map (cut format #f " ~a-~a\t~a\t~a" <> <> <> <>) - name version output path))) + (install (map (lambda (name version output item) + (format #f " ~a-~a\t~a\t~a" name version output + (if (package? item) + (package-output (%store) item output) + item))) + name version output item))) (if dry-run? (format (current-error-port) (N_ "The following package would be installed:~%~{~a~%~}~%" @@ -253,17 +259,6 @@ RX." (package-name p2)))) same-location?)) -(define (input->name+path input) - "Convert the name/package/sub-drv tuple INPUT to a name/store-path tuple." - (let loop ((input input)) - (match input - ((name (? package? package)) - (loop `(,name ,package "out"))) - ((name (? package? package) sub-drv) - `(,name ,(package-output (%store) package sub-drv))) - (_ - input)))) - (define %sigint-prompt ;; The prompt to jump to upon SIGINT. (make-prompt-tag "interruptible")) @@ -652,14 +647,13 @@ return the new list of manifest entries." ;; When given a package via `-e', install the first of its ;; outputs (XXX). (let* ((output (or output (car (package-outputs p)))) - (path (package-output (%store) p output)) (deps (deduplicate (package-transitive-propagated-inputs p)))) (manifest-entry (name (package-name p)) (version (package-version p)) (output output) - (path path) - (dependencies (map input->name+path deps)) + (item p) + (dependencies deps) (inputs (cons (list (package-name p) p output) deps))))) @@ -723,7 +717,7 @@ return the new list of manifest entries." (name name) (version version) (output #f) - (path path)))) + (item path)))) (_ #f)) opts))) @@ -932,7 +926,8 @@ more information.~%")) (ensure-default-profile)) (unless (and (null? install) (null? remove)) - (let* ((prof-drv (profile-derivation (%store) new)) + (let* ((prof-drv (run-with-store (%store) + (profile-derivation new))) (prof (derivation->output-path prof-drv)) (remove (manifest-matching-entries manifest remove))) (show-what-to-remove/install remove install dry-run?) diff --git a/tests/profiles.scm b/tests/profiles.scm index 8ead6e6968..e6fcaad7cf 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +30,7 @@ (manifest-entry (name "guile") (version "2.0.9") - (path "/gnu/store/...") + (item "/gnu/store/...") (output "out"))) (define guile-2.0.9:debug From 4ca0b4101d2d15fc41c0a875f09553ded27091bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 26 Jul 2014 22:21:43 +0200 Subject: [PATCH 73/75] profiles: Get rid of the 'inputs' field of 'manifest-entry'. * guix/profiles.scm ()[inputs]: Remove. (profile-derivation): Rely on 'item' and 'deps' instead of 'inputs'. Adjust 'builder' accordingly. * guix/scripts/package.scm (options->installable)[package->manifest-entry]: Remove 'inputs' field. Change 'dependencies' field to contain packages. --- guix/profiles.scm | 28 ++++++++++------------------ guix/scripts/package.scm | 11 +++++++---- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 64c69c4429..96c8ca0514 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -86,10 +86,8 @@ (output manifest-entry-output ; string (default "out")) (item manifest-entry-item) ; package | store path - (dependencies manifest-entry-dependencies ; list of store paths - (default '())) - (inputs manifest-entry-inputs ; list of inputs to build - (default '()))) ; this entry + (dependencies manifest-entry-dependencies ; (store path | package)* + (default '()))) (define-record-type* manifest-pattern make-manifest-pattern @@ -210,11 +208,11 @@ the given MANIFEST." (define inputs (append-map (match-lambda (($ name version - output path deps (inputs ..1)) - inputs) + output (? package? package) deps) + `((,package ,output) ,@deps)) (($ name version output path deps) ;; Assume PATH and DEPS are already valid. - `((,name ,path) ,@deps))) + `(,path ,@deps))) (manifest-entries manifest))) (define builder @@ -225,17 +223,11 @@ the given MANIFEST." (setvbuf (current-output-port) _IOLBF) (setvbuf (current-error-port) _IOLBF) - (let ((inputs '#$(map (match-lambda - ((label thing) - thing) - ((label thing output) - `(,thing ,output))) - inputs))) - (union-build #$output inputs - #:log-port (%make-void-port "w")) - (call-with-output-file (string-append #$output "/manifest") - (lambda (p) - (pretty-print '#$(manifest->gexp manifest) p)))))) + (union-build #$output '#$inputs + #:log-port (%make-void-port "w")) + (call-with-output-file (string-append #$output "/manifest") + (lambda (p) + (pretty-print '#$(manifest->gexp manifest) p))))) (gexp->derivation "profile" builder #:modules '((guix build union)) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index bc2c854853..3fe7385bc2 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -647,15 +647,18 @@ return the new list of manifest entries." ;; When given a package via `-e', install the first of its ;; outputs (XXX). (let* ((output (or output (car (package-outputs p)))) - (deps (deduplicate (package-transitive-propagated-inputs p)))) + (deps (map (match-lambda + ((label package) + `(,package "out")) + ((label package output) + `(,package ,output))) + (package-transitive-propagated-inputs p)))) (manifest-entry (name (package-name p)) (version (package-version p)) (output output) (item p) - (dependencies deps) - (inputs (cons (list (package-name p) p output) - deps))))) + (dependencies (delete-duplicates deps))))) (define upgrade-regexps (filter-map (match-lambda From 462f5ccade9fd1372e2a7d1e854cd6324ebb4105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 26 Jul 2014 22:54:40 +0200 Subject: [PATCH 74/75] profiles: Add 'package->manifest-entry'. Suggested by Alex Kost . * guix/scripts/package.scm (options->installable)[package->manifest-entry]: Move to (guix profiles). [package->manifest-entry*]: New procedure. Use it. * guix/profiles.scm (package->manifest-entry): New procedure. * tests/profiles.scm (guile-for-build): New variable. Call '%guile-for-build'. ("profile-derivation"): New test. --- guix/profiles.scm | 17 +++++++++++++++++ guix/scripts/package.scm | 23 +++++------------------ tests/profiles.scm | 27 +++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 18 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 96c8ca0514..5e69e012f9 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -51,6 +51,7 @@ manifest-matching-entries profile-manifest + package->manifest-entry profile-derivation generation-number generation-numbers @@ -105,6 +106,22 @@ (call-with-input-file file read-manifest) (manifest '())))) +(define* (package->manifest-entry package #:optional output) + "Return a manifest entry for the OUTPUT of package PACKAGE. When OUTPUT is +omitted or #f, use the first output of PACKAGE." + (let ((deps (map (match-lambda + ((label package) + `(,package "out")) + ((label package output) + `(,package ,output))) + (package-transitive-propagated-inputs package)))) + (manifest-entry + (name (package-name package)) + (version (package-version package)) + (output (or output (car (package-outputs package)))) + (item package) + (dependencies (delete-duplicates deps))))) + (define (manifest->gexp manifest) "Return a representation of MANIFEST as a gexp." (define (entry->gexp entry) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 3fe7385bc2..31da773a53 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -641,24 +641,11 @@ return the new list of manifest entries." (delete-duplicates deps same?)) - (define (package->manifest-entry p output) - ;; Return a manifest entry for the OUTPUT of package P. - (check-package-freshness p) + (define (package->manifest-entry* package output) + (check-package-freshness package) ;; When given a package via `-e', install the first of its ;; outputs (XXX). - (let* ((output (or output (car (package-outputs p)))) - (deps (map (match-lambda - ((label package) - `(,package "out")) - ((label package output) - `(,package ,output))) - (package-transitive-propagated-inputs p)))) - (manifest-entry - (name (package-name p)) - (version (package-version p)) - (output output) - (item p) - (dependencies (delete-duplicates deps))))) + (package->manifest-entry package output)) (define upgrade-regexps (filter-map (match-lambda @@ -689,7 +676,7 @@ return the new list of manifest entries." (define to-upgrade (map (match-lambda ((package output) - (package->manifest-entry package output))) + (package->manifest-entry* package output))) packages-to-upgrade)) (define packages-to-install @@ -707,7 +694,7 @@ return the new list of manifest entries." (define to-install (append (map (match-lambda ((package output) - (package->manifest-entry package output))) + (package->manifest-entry* package output))) packages-to-install) (filter-map (match-lambda (('install . (? package?)) diff --git a/tests/profiles.scm b/tests/profiles.scm index e6fcaad7cf..d405f6453e 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -18,11 +18,25 @@ (define-module (test-profiles) #:use-module (guix profiles) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) #:use-module (srfi srfi-64)) ;; Test the (guix profile) module. +(define %store + (open-connection)) + +(define guile-for-build + (package-derivation %store %bootstrap-guile)) + +;; Make it the default. +(%guile-for-build guile-for-build) + ;; Example manifest entries. @@ -87,6 +101,19 @@ (null? (manifest-entries m3)) (null? (manifest-entries m4))))))) +(test-assert "profile-derivation" + (run-with-store %store + (mlet* %store-monad + ((entry -> (package->manifest-entry %bootstrap-guile)) + (guile (package->derivation %bootstrap-guile)) + (drv (profile-derivation (manifest (list entry)))) + (profile -> (derivation->output-path drv)) + (bindir -> (string-append profile "/bin")) + (_ (built-derivations (list drv)))) + (return (and (file-exists? (string-append bindir "/guile")) + (string=? (dirname (readlink bindir)) + (derivation->output-path guile))))))) + (test-end "profiles") From b9663471a87916f36b50af2a0f885f6f08dc3ed2 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 26 Jul 2014 17:08:56 -0400 Subject: [PATCH 75/75] gnu: gnumeric: Adapt to glib "bin" split. * gnu/packages/gnome.scm (gnumeric): Add glib:bin to 'native-inputs'. --- gnu/packages/gnome.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 153bd39c96..f684d24627 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1189,6 +1189,7 @@ controls using the Bonobo component framework.") ("zlib" ,zlib))) (native-inputs `(("intltool" ,intltool) + ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") (synopsis "Spreadsheet application")