From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Kost Subject: Re: Odd behavior with --dry-run and --upgrade Date: Sat, 30 Jul 2016 18:25:10 +0300 Message-ID: <8760rnb12h.fsf@gmail.com> References: <87y44sqtiw.fsf@gnu.org> <87h9bfcteu.fsf@gmail.com> <87y44q8yta.fsf@gnu.org> <8760rtbc14.fsf@gnu.org> <87r3agd8yg.fsf@gnu.org> <87mvl41z1a.fsf@gnu.org> <87r3ag8tc1.fsf@gnu.org> <87twfbth7w.fsf@gmail.com> <87lh0mvi4f.fsf@gnu.org> <87twfa19dw.fsf@gmail.com> <87bn1hj4qs.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54719) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bTW8h-0000ip-EJ for guix-devel@gnu.org; Sat, 30 Jul 2016 11:25:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bTW8c-0001SN-ED for guix-devel@gnu.org; Sat, 30 Jul 2016 11:25:22 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel Ludovic Court=C3=A8s (2016-07-28 16:01 +0300) wrote: > Alex Kost skribis: [...] >> 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) >> =E2=80=A6) >> >> the grafting doesn't happen, but when I try this: >> >> (mlet %store-monad ((grafting? ((lift0 %graft? %store-monad)))) >> (set-grafting #f) >> =E2=80=A6) >> >> grafting happens anyway. I have no idea what the problem is. > > Hmm. Not sure why. What about this: This approach works, thanks! > --- a/guix/scripts.scm > +++ b/guix/scripts.scm > @@ -22,6 +22,7 @@ > #:use-module (guix utils) > #:use-module (guix ui) > #:use-module (guix store) > + #:use-module (guix grafts) > #:use-module (guix monads) > #:use-module (guix packages) > #:use-module (guix derivations) > @@ -105,11 +106,14 @@ true." > #:rest build-options) > "Build PACKAGE using BUILD-OPTIONS acceptable by 'set-build-options'. > Show what and how will/would be built." > - (mbegin %store-monad > + (mlet %store-monad ((grafting? ((lift0 %graft? %store-monad)))) > (apply set-build-options* > #:use-substitutes? use-substitutes? > (strip-keyword-arguments '(#:dry-run?) build-options)) > - (mlet %store-monad ((derivation (package->derivation package))) > + (mlet %store-monad ((derivation (package->derivation package > + #:graft? > + (and (not dry-r= un?) > + grafting?)= ))) > (mbegin %store-monad > (maybe-build (list derivation) > #:use-substitutes? use-substitutes? > > Using #:graft? is cleaner anyway. Indeed! Since you said it's OK to make separate patches for this "dry-run + no-grafts" change (for CLI and Emacs UI), I committed it as a82a201. --=20 Alex