diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index cbf7cdc474..040932f307 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 d84375f570..bbee50bc3d 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 ;;; Copyright © 2014 Deck Pickard -;;; Copyright © 2015 Alex Kost +;;; Copyright © 2015, 2016 Alex Kost ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix scripts) + #:use-module (guix grafts) #:use-module (guix utils) #:use-module (guix ui) #:use-module (guix store) @@ -105,11 +106,13 @@ 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?