summary refs log tree commit diff
path: root/guix-package.in
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-01-07 23:58:24 +0100
committerLudovic Courtès <ludo@gnu.org>2013-01-08 00:04:46 +0100
commit9762706b900cda66a3caa3deea2f55432d6ac592 (patch)
treecfe01c4ecabb92ff8c20120e910264bc316b622d /guix-package.in
parentcc57f25d96f3007682a4e41a8b5871f05f76e23f (diff)
downloadguix-9762706b900cda66a3caa3deea2f55432d6ac592.tar.gz
guix-package: Be verbose when Guile itself needs to be built.
* guix-package.in (guix-package)[guile-missing?]: New procedure.
  (guix-package): Always redirect `current-build-output-port' to
  `current-error-port' when (guile-missing?).
Diffstat (limited to 'guix-package.in')
-rw-r--r--guix-package.in9
1 files changed, 8 insertions, 1 deletions
diff --git a/guix-package.in b/guix-package.in
index 628a2b595f..c02f1c634e 100644
--- a/guix-package.in
+++ b/guix-package.in
@@ -272,6 +272,11 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
                  (alist-cons 'argument arg result))
                %default-options))
 
+  (define (guile-missing?)
+    ;; Return #t if %GUILE-FOR-BUILD is not available yet.
+    (let ((out (derivation-path->output-path (%guile-for-build))))
+      (not (valid-path? %store out))))
+
   (define (show-what-to-build drv dry-run?)
     ;; Show what will/would be built in realizing the derivations listed
     ;; in DRV.
@@ -393,7 +398,9 @@ Install, remove, or upgrade PACKAGES in a single transaction.\n"))
                  (if (string=? old-prof prof)
                      (format (current-error-port) (_ "nothing to be done~%"))
                      (and (parameterize ((current-build-output-port
-                                          (if verbose?
+                                          ;; Output something when Guile
+                                          ;; needs to be built.
+                                          (if (or verbose? (guile-missing?))
                                               (current-error-port)
                                               (%make-void-port "w"))))
                             (build-derivations %store (list prof-drv)))