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
next prev 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.