Ludovic Courtès (2014-08-22 12:56 +0400) wrote: > Alex Kost <alez...@gmail.com> skribis: > >> Thanks, now (with the latest “guix pull”), installing/upgrading/removing >> should work in "guix.el". If you (or someone else) wish to try it, you >> may use: >> >> (setq guix-dry-run t) >> >> (It has the same meaning as “--dry-run” option). > > I gave it a try, but AFAICS, when the REPL is started as “internal”, > guix-main.scm isn’t loaded, and thus “Install” fails: > > scheme@(guile-user)> (process-package-actions #:install '((58935712 "out")) > #:upgrade '() #:remove '() #:use-substitutes? #t #:dry-run? #f) > ;;; <stdin>:11:0: warning: possibly unbound variable `process-package-actions' > <unnamed port>:11:0: In procedure #<procedure 42ba0c0 at <current input>:11:0 > ()>: > <unnamed port>:11:0: In procedure module-lookup: Unbound variable: > process-package-actions > > Did I miss something?
I don't understand why you get this, it works for me and I can't reproduce it with "emacs -Q". Does the following recipe works for you?: 1. emacs -Q 2. Evaluate the following code (for example, paste it into *scratch* buffer and "M-x eval-buffer"):
test.el
Description: application/emacs-lisp
3. M-x guix-all-available-packages 4. RET on any package that is not installed and press "Install" button in “*Guix Package Info*” buffer. For me “*Guix REPL*” is shown and the following output is printed:
scheme@(guile-user)> (process-package-actions #:install '((151687520 "out")) #:upgrade '() #:remove '() #:use-substitutes? #t #:dry-run? #t) The process begins ... The following package would be installed: a2ps-4.14 out /gnu/store/1akh02xh4z7i2idfnxbd28zzm87ghav1-a2ps-4.14 substitute-binary: ;;; note: source file /usr/share/guile/site/2.0/guix/config.scm substitute-binary: ;;; newer than compiled /usr/share/guile/site/2.0/guix/config.go The following derivation would be built: /gnu/store/868vmg9s02jf4pxm3nvfmk168qbx44ld-profile.drv The following files would be downloaded: /gnu/store/1akh02xh4z7i2idfnxbd28zzm87ghav1-a2ps-4.14 /gnu/store/43bg01fshdm6hnacb9b8mha681cll0nw-coreutils-8.22 /gnu/store/sv8ijfgc0d4ll8wzlxa6s2rkcvcjgrwx-perl-5.16.1 scheme@(guile-user)>
I tried with emacs 24.3.1 and the latest Geiser (from <https://github.com/jaor/geiser>). > Besides, I like M-x guix-generations, pretty cool. :-) > >> Also I would like to add support for deleting generations (to >> "guix.el"), so I think it would be good to export ‘delete-generation’ >> from "scripts/package.scm". WDYT? > > Yes, that makes sense, one could use it from the *Guix Generation List* > buffer. Yes, that's what I had in mind: mark generations with "d" and execute a deletion operation with "x". > Regarding package installation/removal/upgrade, I think it would be > great UI-wise to support transactions that perform multiple operations. > > I was initially thinking of something similar to what package.el does: > marks packages from installation/removal, and then hit ‘x’ to execute > the transaction. So the current “Install” and “Delete” buttons could be > changed to just mark things for installation/removal. It is already available in a “*Guix Package List*” buffer: you can mark packages with "d"/"i"/"^" ("u" is for unmarking) and execute an operation with "x". As for me, I prefer to keep buttons in a “*Guix Package Info*” buffer as they are now. It's just an alternative way to install/delete a package: if you want to make a transaction of several actions – use a "list" buffer, if you just want to install some package, you can do it by pressing a button in "info" buffer. -- Alex Kost