Ludovic Courtès (2016-07-26 15:41 +0300) wrote:

> Roel Janssen <r...@gnu.org> skribis:
>
>> Ludovic Courtès writes:
[...]
>>> Something similar should be done in the Emacs interface.
>>
>> I'm not familiar with the code of the Emacs interface.  Any other
>> takers for it?  Otherwise I will look into it, but that will take even
>> more time :)
>
> Maybe Alex can give a hand?  :-)

I have zero knowledge in grafting, but if I checked it right, the
attached patch should disable grafting for the emacs interface (when
dry-run is on).  If you think it should be a part of a bigger
dry-run+no-grafts patch, please use it.

>From d7747453bf31a616d414dce293fc0556d601abcb Mon Sep 17 00:00:00 2001
From: Alex Kost <alez...@gmail.com>
Date: Wed, 27 Jul 2016 14:55:50 +0300
Subject: [PATCH] emacs: Disable grafts when dry-run is enabled.

* emacs/guix-main.scm (process-package-actions): Set grafting according
to 'dry-run?'.
* guix/scripts.scm (build-package): Likewise.
---
 emacs/guix-main.scm | 20 +++++++++++---------
 guix/scripts.scm    |  4 +++-
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index cbf7cdc..040932f 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -46,6 +46,7 @@
  (guix)
  (guix combinators)
  (guix git-download)
+ (guix grafts)
  (guix packages)
  (guix profiles)
  (guix licenses)
@@ -930,15 +931,16 @@ OUTPUTS is a list of package outputs (may be an empty list)."
          (new-manifest (manifest-perform-transaction
                         manifest transaction)))
     (unless (and (null? install) (null? remove))
-      (with-store store
-        (set-build-options store
-                           #:print-build-trace #f
-                           #:use-substitutes? use-substitutes?)
-        (show-manifest-transaction store manifest transaction
-                                   #:dry-run? dry-run?)
-        (build-and-use-profile store profile new-manifest
-                               #:use-substitutes? use-substitutes?
-                               #:dry-run? dry-run?)))))
+      (parameterize ((%graft? (not dry-run?)))
+        (with-store store
+          (set-build-options store
+                             #:print-build-trace #f
+                             #:use-substitutes? use-substitutes?)
+          (show-manifest-transaction store manifest transaction
+                                     #:dry-run? dry-run?)
+          (build-and-use-profile store profile new-manifest
+                                 #:use-substitutes? use-substitutes?
+                                 #:dry-run? dry-run?))))))
 
 (define (delete-generations* profile generations)
   "Delete GENERATIONS from PROFILE.
diff --git a/guix/scripts.scm b/guix/scripts.scm
index d84375f..2ed1eeb 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2014 Deck Pickard <deck.r.pick...@gmail.com>
-;;; Copyright © 2015 Alex Kost <alez...@gmail.com>
+;;; Copyright © 2015, 2016 Alex Kost <alez...@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,6 +19,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (guix scripts)
+  #:use-module (guix grafts)
   #:use-module (guix utils)
   #:use-module (guix ui)
   #:use-module (guix store)
@@ -106,6 +107,7 @@ true."
   "Build PACKAGE using BUILD-OPTIONS acceptable by 'set-build-options'.
 Show what and how will/would be built."
   (mbegin %store-monad
+    (set-grafting (not dry-run?))
     (apply set-build-options*
            #:use-substitutes? use-substitutes?
            (strip-keyword-arguments '(#:dry-run?) build-options))
-- 
2.8.3

Reply via email to