Ludovic Courtès (2016-07-28 01:19 +0300) wrote: > Alex Kost <alez...@gmail.com> skribis: > >> 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. > > Two separate patches is fine, IMO.
OK, then I'll commit this patch when it will be ready. >> 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. > > [...] > >> (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)) > > Here it might be best to do something like this: > > (mlet %store-monad ((grafting? ((lift0 %graft? %store-monad)))) > (set-grafting (and (not dry-run?) grafting?)) > …) > > This would make sure we don’t enable grafting if it turned out to be > disabled. > > WDYT? OK, you know better :-) However, I tried it and it doesn't work for me (note: I know nothing about monads, gexps, etc.). When I try this: (mbegin %store-monad (set-grafting #f) …) the grafting doesn't happen, but when I try this: (mlet %store-monad ((grafting? ((lift0 %graft? %store-monad)))) (set-grafting #f) …) grafting happens anyway. I have no idea what the problem is. -- Alex