guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: inferior: 'cached-channel-instance' no longer calls 'show-what-to


From: guix-commits
Subject: 02/02: inferior: 'cached-channel-instance' no longer calls 'show-what-to-build'.
Date: Mon, 9 Aug 2021 12:17:47 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 7bd5f72918556359e502fee73e8a7b0e725b901f
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Mon Aug 9 17:37:54 2021 +0200

    inferior: 'cached-channel-instance' no longer calls 'show-what-to-build'.
    
    This allows the user of 'cached-channel-instance' to install the build
    handler of its choice.  In particular, it allows "guix time-machine" to
    install a build notifier with the right options instead of using the
    defaults that 'cached-channel-instance' would pass to
    'show-what-to-build*'.
    
    * guix/inferior.scm (cached-channel-instance): Remove call to
    'show-what-to-build*'.
    (inferior-for-channels): Wrap body in 'with-build-handler'.
    * guix/scripts/time-machine.scm (guix-time-machine): Use
    'with-build-handler'.
---
 guix/inferior.scm             | 18 ++++++++++++------
 guix/scripts/time-machine.scm | 14 ++++++++++----
 2 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/guix/inferior.scm b/guix/inferior.scm
index 7c8e478..81958ba 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -48,7 +48,7 @@
   #:use-module (gcrypt hash)
   #:autoload   (guix cache) (maybe-remove-expired-cache-entries
                              file-expiration-time)
-  #:autoload   (guix ui) (show-what-to-build*)
+  #:autoload   (guix ui) (build-notifier)
   #:autoload   (guix build utils) (mkdir-p)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
@@ -801,8 +801,10 @@ determines whether CHANNELS are authenticated."
                              (profile
                               (channel-instances->derivation instances)))
           (mbegin %store-monad
-            (show-what-to-build* (list profile))
+            ;; It's up to the caller to install a build handler to report
+            ;; what's going to be built.
             (built-derivations (list profile))
+
             ;; Note: Caching is fine even when AUTHENTICATE? is false because
             ;; we always call 'latest-channel-instances?'.
             (symlink* (derivation->output-path profile) cached)
@@ -821,10 +823,14 @@ This is a convenience procedure that people may use in 
manifests passed to
 'guix package -m', for instance."
   (define cached
     (with-store store
-      (cached-channel-instance store
-                               channels
-                               #:cache-directory cache-directory
-                               #:ttl ttl)))
+      ;; XXX: Install a build notifier out of convenience, so users know
+      ;; what's going on.  However, we cannot be sure that its options, such
+      ;; as #:use-substitutes?, correspond to the daemon's default settings.
+      (with-build-handler (build-notifier)
+        (cached-channel-instance store
+                                 channels
+                                 #:cache-directory cache-directory
+                                 #:ttl ttl))))
   (open-inferior cached))
 
 ;;; Local Variables:
diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm
index 4aafd43..5179ea0 100644
--- a/guix/scripts/time-machine.scm
+++ b/guix/scripts/time-machine.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Konrad Hinsen <konrad.hinsen@fastmail.net>
-;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -141,13 +141,19 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
      (let* ((opts         (parse-args args))
             (channels     (channel-list opts))
             (command-line (assoc-ref opts 'exec))
+            (substitutes?  (assoc-ref opts 'substitutes?))
             (authenticate? (assoc-ref opts 'authenticate-channels?)))
        (when command-line
          (let* ((directory
                  (with-store store
                    (with-status-verbosity (assoc-ref opts 'verbosity)
-                     (set-build-options-from-command-line store opts)
-                     (cached-channel-instance store channels
-                                              #:authenticate? authenticate?))))
+                     (with-build-handler (build-notifier #:use-substitutes?
+                                                         substitutes?
+                                                         #:verbosity
+                                                         (assoc-ref opts 
'verbosity)
+                                                         #:dry-run? #f)
+                       (set-build-options-from-command-line store opts)
+                       (cached-channel-instance store channels
+                                                #:authenticate? 
authenticate?)))))
                 (executable (string-append directory "/bin/guix")))
            (apply execl (cons* executable executable command-line))))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]