Alex Kost skribis: > Ludovic Courtès (2016-07-28 01:19 +0300) wrote: > >> Alex Kost skribis: [...] >>> From d7747453bf31a616d414dce293fc0556d601abcb Mon Sep 17 00:00:00 2001 >>> From: Alex Kost >>> 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. Hmm. Not sure why. What about this: