guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs load path


From: Alex Kost
Subject: Re: Emacs load path
Date: Fri, 01 Jan 2016 19:28:50 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Federico Beffa (2016-01-01 17:25 +0300) wrote:

> On Wed, Dec 30, 2015 at 5:55 PM, Federico Beffa <address@hidden> wrote:
>> On Wed, Dec 30, 2015 at 5:29 PM, Ludovic Courtès <address@hidden> wrote:
>>> Federico Beffa <address@hidden> skribis:
>>>
>>>> If you install guix in the default prefix (/usr/local) you should find a
>>>> file called 'guix.el' in /usr/local/share/emacs/site-lisp/.  With that
>>>> you can include the following commands in your .emacs file and you
>>>> should be all set:
>>>>
>>>> 1. (setq load-path (append '("/usr/local/share/emacs/site-lisp/") 
>>>> load-path))
>>>> 2. (require 'guix-init nil t)
>>>>
>>>> On some host distros step 1. may not even be needed.
>>>
>>> I don’t see how to make that happen automatically on foreign distros.
>>> Any ideas?
>>>
>>> We still have the option of making it more prominent in the
>>> documentation, for example by mentioning specifically Emacs under
>>> <https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html>.
>>>
>>> Thoughts?
>>
>> If we make an 'emacs-guix' package and make it an input to emacs it should 
>> work.
>
> Attached is a proof of concept patch showing one way to do it.
>
> If you don't want to add the full 'guix.el', then we should definitely
> add code in a similar way to instruct emacs to look in the right
> places (".../guix.d") for our emacs packages out of the box.  As
> Dmitry rightfully points out, having emacs packages which do not work
> out of the box is just a bug.

Not for me!  As a user, I always want to have pure upstream packages if
possible, without unnecessary modifications made by package maintainers.
Such modifications have an intention to make users life easier, but in
fact they are often a pain that I'd like to get rid of.  I only talk
about my own experience (most of the times I'm for simplicity and
against "full-feature"-ness).

[...]
> @@ -78,14 +79,32 @@
>               (patches (list (search-patch "emacs-exec-path.patch")))))
>      (build-system glib-or-gtk-build-system)
>      (arguments
> -     '(#:phases (alist-cons-before
> -                 'configure 'fix-/bin/pwd
> -                 (lambda _
> -                   ;; Use `pwd', not `/bin/pwd'.
> -                   (substitute* (find-files "." "^Makefile\\.in$")
> -                     (("/bin/pwd")
> -                      "pwd")))
> -                 %standard-phases)))
> +     `(#:modules ((guix build glib-or-gtk-build-system)
> +                  (guix build utils)
> +                  (srfi srfi-26))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'configure 'fix-/bin/pwd
> +           (lambda _
> +             ;; Use `pwd', not `/bin/pwd'.
> +             (substitute* (find-files "." "^Makefile\\.in$")
> +               (("/bin/pwd")
> +                "pwd"))))
> +         (add-after 'install 'install-guix-el
> +             (lambda* (#:key inputs outputs #:allow-other-keys)
> +               (let* ((guix-src (assoc-ref inputs "guix-src"))
> +                      (out (assoc-ref outputs "out"))
> +                      (site-lisp (string-append out "/share/emacs/"
> +                                                ,(version-major+minor 
> version)
> +                                                "/site-lisp"))
> +                      (unpack (assoc-ref %standard-phases 'unpack)))
> +                 (mkdir "guix")
> +                 (with-directory-excursion "guix"
> +                   (apply unpack (list #:source guix-src))
> +                   ;; FIXME: configure and byte-compile guix.el before 
> installing
> +                   (for-each (cut install-file <> site-lisp)
> +                             (find-files "emacs" "\\.el")))
> +                 #t))))))

Sorry, I didn't try it, but IIUC this just adds guix elisp files to a
site-lisp directory, right?
But a user still have to use (require 'guix-init), so this shouldn't
work out of the box, or do I miss anything?

-- 
Alex



reply via email to

[Prev in Thread] Current Thread [Next in Thread]