This helps Geiser find the correct (environment's) Guile.
* elisp/guix-misc.el (guix-set-emacs-environment): Set 'exec-path'
when setting "PATH" variable.
Co-authored by Alex Kost.
Discussed at
<https://lists.gnu.org/archive/html/help-guix/2018-09/msg00038.html>.
* scheme/emacs-guix/profiles.scm (search-paths-specifications): New procedure.
* scheme/emacs-guix.scm (emacs-guix): Autoload it.
* elisp/guix-misc.el (guix-set-emacs-environment): New command.
* elisp/guix-help.el (guix-help-specifications): Add it.
* doc/emacs-guix.texi (Miscellaneous Commands): Document it.
Various Guix (Guile) procedures are sensitive to "non-expanded" file
names and to trailing slashes in directory names, so
'directory-file-name' and 'expand-file-name' are called here and there.
Make a single function to fix it once and for all.
* elisp/guix-utils.el (guix-file-name): New function.
* elisp/guix-hash.el (guix-hash): Use it.
* elisp/guix-profiles.el (guix-profile): Use it.
* elisp/guix-misc.el (guix-apply-manifest): Use it.
* elisp/guix-repl.el (guix-repl-guile-args): Use it.
* elisp/guix-ui.el (guix-ui-buffer-name-short): Use it.
* elisp/guix-ui-profile.el (guix-profiles): Use it.
* elisp/guix-ui-generation.el
(guix-generation-packages-buffer-name-default): Use it.
Suggested by Pierre Neidhardt:
<https://github.com/alezost/guix.el/issues/18>.
* elisp/guix-misc.el (guix-bug-address): New variable.
(guix-report-bug): New command.
* elisp/guix-help.el (guix-help-specifications): Add it.
* doc/emacs-guix.texi (Miscellaneous Commands): Document it.
* elisp/guix-profiles.el (guix-read-manifest-file-name): New procedure.
* elisp/guix-ui-profile.el (guix-profile-list-apply-manifest): Use it.
* elisp/guix-misc.el (guix-apply-manifest): Likewise.
* scheme/emacs-guix/profiles.scm: New file.
(search-paths): New procedure.
* scheme/emacs-guix.scm (emacs-guix): Autoload it.
* elisp/guix-utils.el (guix-display-buffer): New procedure.
* elisp/guix-misc.el (guix-search-paths-buffer-name): New variable.
(guix-show-search-paths): New procedure.
* elisp/guix-ui-generation.el (guix-generation-list-marked-file-names):
New procedure.
(guix-generation-list-show-search-paths): New command.
(guix-generation-list-mode-map): Bind it to "E".
* elisp/guix-ui-profile.el (guix-profile-list-marked-profiles): New
procedure.
(guix-profile-list-show-search-paths): New command.
(guix-profile-list-mode-map): Bind it to "E".
* doc/emacs-guix.texi (Profiles): Document "E" key.
(Generation Keys): Likewise.
(Buffer Names): Add 'guix-search-paths-buffer-name' variable.
* scheme/Makefile.am (MODULES): Add "profiles.scm"
This is added mainly for MELPA, as it will be used to define
package headers (Package-Requires, etc.).
* elisp/guix-misc.el (guix, guix-faces): Move custom groups to...
* elisp/guix.el: ... here. New file.
* elisp/guix-about.el: Require it.
* elisp/guix-build-log.el: Require it.
* elisp/guix-command.el: Require it.
* elisp/guix-devel.el: Require it.
* elisp/guix-external.el: Require it.
* elisp/guix-hydra.el: Require it.
* elisp/guix-misc.el: Require it.
* elisp/guix-pcomplete.el: Require it.
* elisp/guix-prettify.el: Require it.
* elisp/guix-repl.el: Require it.
* elisp/guix-ui-generation.el: Require it.
* elisp/guix-ui-license.el: Require it.
* elisp/guix-ui-location.el: Require it.
* elisp/guix-ui-package.el: Require it.
* elisp/guix-ui-profile.el: Require it.
* elisp/guix-ui-system-generation.el: Require it.
* elisp/guix-ui.el: Require it.
* elisp/guix-utils.el: Require it.
* elisp/local.mk (ELFILES): Add it.
* elisp/guix-profiles.el (guix-assert-non-system-profile): New procedure.
* elisp/guix-ui-package.el (guix-package-assert-non-system-profile): Use it.
* elisp/guix-misc.el (guix-apply-manifest): Likewise.