guix-devel
[Top][All Lists]
Advanced

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

Re: Odd behavior with --dry-run and --upgrade


From: Alex Kost
Subject: Re: Odd behavior with --dry-run and --upgrade
Date: Sat, 30 Jul 2016 18:25:10 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Ludovic Courtès (2016-07-28 16:01 +0300) wrote:

> Alex Kost <address@hidden> 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)
>>      …)
>>
>> 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:

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-run?)
> +                                                              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.

-- 
Alex



reply via email to

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