Ludovic Courtès (2016-07-26 12:50 +0300) wrote: > Roel Janssen <r...@gnu.org> skribis: > >> Ludovic Courtès writes: [...] >>> But honestly, I think changing ‘--dry-run’ to do ‘--dry-run --no-grafts’ >>> would be fine, and probably better than the current situation. >> >> Could you provide some insight in where I should be looking to att the >> check to 'graft?'? > > Everything that relates to command-line argument processing is in (guix > scripts build), for the common options, and then in each (guix scripts > *) module. > > Roughly, the change I suggest would be along these lines: > > > diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm > index a02a0d5..daa60b9 100644 > --- a/guix/scripts/build.scm > +++ b/guix/scripts/build.scm > @@ -541,7 +541,8 @@ must be one of 'package', 'all', or 'transitive'~%") > (alist-cons 'file arg result))) > (option '(#\n "dry-run") #f #f > (lambda (opt name arg result) > - (alist-cons 'dry-run? #t result))) > + (alist-cons 'dry-run? #t > + (alist-cons 'graft? #f result)))) > (option '(#\r "root") #t #f > (lambda (opt name arg result) > (alist-cons 'gc-root arg result))) > > However, since --dry-run is processed separately in each command, this > change should probably be duplicated. > > Would you like to look into it? > > Something similar should be done in the Emacs interface.
What would be "something similar" here? For CLI it's easy to set ‘graft?’ option as you suggest, and later 'guix-package', 'guix-system' and other similar procedures from (guix scripts ...) modules parameterize ‘%graft?’ according to this option. The only way I see for the Emacs interface is to modify "emacs/guix-main.scm" to parameterize ‘%graft?’ as well and to set it depending on the current value of ‘dry-run’. AFAICT this parameterization should be added to: - 'process-package-actions': it is responsible for operations with profiles (installing/upgrading/removing packages); - 'package-source-build-derivation': it is responsible for building package sources. If my understanding is correct, I can make a patch for this. I can also add 'grafts' option that will appear in prompts (in the mode-line along with 'substitutes' and 'dry-run'), but I'm not sure if it will be useful since dry-run will disable grafts anyway. -- Alex