all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Pierre Neidhardt <mail@ambrevar.xyz>
Cc: Alex Kost <alezost@gmail.com>, myglc2@gmail.com, help-guix@gnu.org
Subject: Re: Emacs in multiple profiles
Date: Mon, 28 Oct 2019 21:25:39 -0400	[thread overview]
Message-ID: <874kzscpgs.fsf@gmail.com> (raw)
In-Reply-To: <87mudpm5nt.fsf@ambrevar.xyz> (Pierre Neidhardt's message of "Fri, 25 Oct 2019 13:21:58 +0200")

[-- Attachment #1: Type: text/plain, Size: 127 bytes --]

I sent a patch earlier that had unstaged changes... So I'm sorry if you
tried it but it was broken.

Here's a functional one.


[-- Attachment #2: 0001-build-system-emacs-Simplify-the-SET-EMACS-LOAD-PATH-.patch --]
[-- Type: text/x-patch, Size: 4008 bytes --]

From 1007969505b450fe12284bf81751ae6de25c367e Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 28 Oct 2019 08:09:03 -0400
Subject: [PATCH] build-system: emacs: Simplify the SET-EMACS-LOAD-PATH phase.

It is no longer necessary to search for the Elisp libraries manually, as Emacs
now include a search path specification serving that purpose.

* guix/build/emacs-build-system.scm (set-emacs-load-path): Replace by...
(add-source-to-load-path): ...this.
(%standard-phases): Adjust accordingly.
---
 guix/build/emacs-build-system.scm | 42 ++++++-------------------------
 1 file changed, 8 insertions(+), 34 deletions(-)

diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index 47a9eda9e6..f0c41812f1 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,40 +74,14 @@ archive, a directory, or an Emacs Lisp file."
         #t)
       (gnu:unpack #:source source)))
 
-(define* (set-emacs-load-path #:key source inputs #:allow-other-keys)
-  (define (inputs->directories inputs)
-    "Extract the directory part from INPUTS."
-    (match inputs
-      (((names . directories) ...) directories)))
-
-  (define (input-directory->el-directory input-directory)
-    "Return the correct Emacs Lisp directory in INPUT-DIRECTORY or #f, if there
-is no Emacs Lisp directory."
-    (let ((legacy-elisp-directory (string-append input-directory %legacy-install-suffix))
-          (guix-elisp-directory
-           (string-append
-            input-directory %install-suffix "/"
-            (store-directory->elpa-name-version input-directory))))
-      (cond
-       ((file-exists? guix-elisp-directory) guix-elisp-directory)
-       ((file-exists? legacy-elisp-directory) legacy-elisp-directory)
-       (else #f))))
-
-  (define (input-directories->el-directories input-directories)
-    "Return the list of Emacs Lisp directories in INPUT-DIRECTORIES."
-    (filter-map input-directory->el-directory input-directories))
-
-  "Set the EMACSLOADPATH environment variable so that dependencies are found."
+(define* (add-source-to-load-path #:key dummy #:allow-other-keys)
+  "Augment the EMACSLOADPATH environment variable with the source directory."
   (let* ((source-directory (getcwd))
-         (input-elisp-directories (input-directories->el-directories
-                                   (inputs->directories inputs)))
-         (emacs-load-path-value
-          (string-join
-           (append input-elisp-directories (list source-directory))
-           ":" 'suffix)))
+         (emacs-load-path-value (string-append (getenv "EMACSLOADPATH") ":"
+                                               source-directory)))
     (setenv "EMACSLOADPATH" emacs-load-path-value)
-    (format #t "environment variable `EMACSLOADPATH' set to ~a\n"
-            emacs-load-path-value)))
+    (format #t "source directory ~s appended to the `EMACSLOADPATH' \
+environment variable\n" source-directory)))
 
 (define* (build #:key outputs inputs #:allow-other-keys)
   "Compile .el files."
@@ -269,7 +243,7 @@ second hyphen.  This corresponds to 'name-version' as used in ELPA packages."
 (define %standard-phases
   (modify-phases gnu:%standard-phases
     (replace 'unpack unpack)
-    (add-after 'unpack 'set-emacs-load-path set-emacs-load-path)
+    (add-after 'unpack 'add-source-to-load-path add-source-to-load-path)
     (delete 'bootstrap)
     (delete 'configure)
     ;; Move the build phase after install: the .el files are byte compiled
-- 
2.23.0


[-- Attachment #3: Type: text/plain, Size: 270 bytes --]


I'll rework the 'gnu: emacs: Remove custom guix-emacs code.' patch, as
removing it means losing having the autoloads definitions loaded.
Someone in the #emacs channel suggested making use of the builtin
package.el code to take care of this.  To be continued :-)

Maxim

  parent reply	other threads:[~2019-10-29  1:25 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-22 16:47 Emacs in multiple profiles Konrad Hinsen
2018-03-22 21:21 ` Alex Kost
2018-03-23  7:57   ` Konrad Hinsen
2018-03-23 17:25     ` Alex Kost
2018-03-24 12:14       ` Konrad Hinsen
2018-03-24 16:07         ` Alex Kost
2018-03-26  8:24           ` Konrad Hinsen
2018-03-27 15:38             ` Alex Kost
2018-04-18 19:49               ` myglc2
2018-05-05 16:01                 ` Konrad Hinsen
2019-10-16 19:54                 ` Pierre Neidhardt
2019-10-17 15:56                   ` George Clemmer
2019-10-18  8:42                     ` Pierre Neidhardt
2019-10-18 17:13                       ` George Clemmer
2019-10-19  8:57                         ` Pierre Neidhardt
2019-10-19  8:53                       ` Pierre Neidhardt
2019-10-19 19:35                   ` Maxim Cournoyer
2019-10-19 20:19                     ` Pierre Neidhardt
2019-10-25  3:05                       ` Maxim Cournoyer
2019-10-25 11:21                         ` Pierre Neidhardt
2019-10-28  3:45                           ` Maxim Cournoyer
2019-10-28  7:49                             ` Pierre Neidhardt
2019-10-28 12:46                           ` Maxim Cournoyer
2019-10-29  1:25                           ` Maxim Cournoyer [this message]
2019-10-29 10:44                             ` Pierre Neidhardt
2019-10-31  5:29                               ` Maxim Cournoyer
2019-10-31 12:29                                 ` Pierre Neidhardt
2019-11-01  4:25                                   ` [bug#38015] " Maxim Cournoyer
2019-11-01  4:25                                     ` Maxim Cournoyer
2019-11-01 19:06                                     ` [bug#38015] " Pierre Neidhardt
2019-11-01 19:06                                       ` Pierre Neidhardt
2019-11-02  1:12                                       ` [bug#38015] " Maxim Cournoyer
2019-11-02  1:12                                         ` Maxim Cournoyer
2019-11-02  9:41                                         ` [bug#38015] " Pierre Neidhardt
2019-11-02  9:41                                           ` Pierre Neidhardt
2019-11-17 23:10                                         ` Emacs in server mode using a Shepherd user service (Was: Re: Emacs in multiple profiles) Chris Marusich
2019-11-18 20:55                                           ` brettg
2019-11-19 21:57                                             ` Emacs in server mode using a Shepherd user service Maxim Cournoyer
2019-11-19 21:58                                               ` brettg
2019-11-19 22:03                                                 ` brettg
2019-11-12  5:14                                     ` [bug#38015] Emacs in multiple profiles Chris Marusich
2019-11-12  5:14                                       ` Chris Marusich
2019-11-12  7:16                                       ` Pierre Neidhardt
2019-11-12  7:16                                         ` Pierre Neidhardt
2019-11-13  7:18                                         ` Chris Marusich
2019-11-13  7:18                                           ` Chris Marusich
2019-11-13 11:08                                           ` Pierre Neidhardt
2019-11-13 11:08                                             ` Pierre Neidhardt
2019-11-18  5:50                                           ` Maxim Cournoyer
2019-11-18  5:50                                             ` Maxim Cournoyer
2019-10-20 13:58                   ` Alex Kost
2019-10-20 16:17                     ` Pierre Neidhardt
2018-04-20 20:52           ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874kzscpgs.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=alezost@gmail.com \
    --cc=help-guix@gnu.org \
    --cc=mail@ambrevar.xyz \
    --cc=myglc2@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.