Ludovic Courtès (2014-11-24 23:42 +0300) wrote: > Alex Kost <alez...@gmail.com> skribis: > >> No need to fiddle with ‘geiser-scheme-dir’: it should be set properly if >> you have ‘(require 'geiser-install)’ in your emacs config. > > Oops, indeed, PEBKAC: I was just unaware of ‘geiser-install’, and > everything was fine when I used Geiser from ELPA because that happens > automagically.
Yes, that's the point: if you install Emacs packages using the Emacs package system, everything should work out of the box. If a package is installed manually or with some distro's package manager, a user needs to figure out what he should put in his config to "complete" the installation. > It would be nice if guix.el somehow had that works-out-of-the-box > property when installing Emacs extensions. :-) As I wrote at <http://lists.gnu.org/archive/html/guix-devel/2014-08/msg00165.html>, I see the only way to achieve that: - to modify emacs package recipes so that they will provide some files with all required initial configuration (and to name such file "…-autoloads.el", for example); - to modify “guix-init.el” so that (require 'guix-init) will load those autoloads files; - to write some elisp code for auto-loading "…-autoloads.el" on the fly — i.e., to make it possible to install an Emacs package using "guix.el" and to use "M-x <package-command>" immediately. So if it's acceptable, what about modifying the current recipes step-by-step. With geiser it's easy: as "geiser-install.el" provides all required setup (including autoloads for "M-x …" commands), "geiser-autoloads.el" may just be a symlink to "geiser-install.el". I'm attaching the patch for that. I'm going to send patch(es) for the elisp code later.
>From 49faffe688c53e9d9197ac9e07511ba0de501840 Mon Sep 17 00:00:00 2001 From: Alex Kost <alez...@gmail.com> Date: Tue, 25 Nov 2014 16:50:11 +0300 Subject: [PATCH] gnu: emacs: Add "geiser-autoloads.el". * gnu/packages/emacs.scm (geiser): Add 'post-install' phase for creating "geiser-autoloads.el". --- gnu/packages/emacs.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 119c613..bde707d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -135,6 +135,15 @@ editor (without an X toolkit)" ) (sha256 (base32 "1mrk0bzqcpfhsw6635qznn47nzfy9ps7wrhkpymswdfpw5mdsry5")))) (build-system gnu-build-system) + (arguments + '(#:phases (alist-cons-after + 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (symlink "geiser-install.el" + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp/" + "geiser-autoloads.el"))) + %standard-phases))) (inputs `(("guile" ,guile-2.0) ("emacs" ,emacs))) (home-page "http://nongnu.org/geiser/") -- 2.1.3