>From 103834761802992380d45e31c5e8c833772aed90 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 29 Mar 2018 20:52:41 -0400 Subject: [PATCH 01/27] emacs-build-system: Consider all inputs for Elisp dependencies. * guix/build/emacs-build-system.scm (emacs-inputs): Remove. (emacs-inputs-directories): Rename to... (inputs->directories): this, and adapt for any input. (emacs-input->el-directory): Rename to... (inputs->el-directories): this, and adapt for any input. (set-emacs-load-path): Now use inputs->el-directories and inputs->el-directories. --- guix/build/emacs-build-system.scm | 44 +++++++++++++-------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm index b77984742..ba9ec88e4 100644 --- a/guix/build/emacs-build-system.scm +++ b/guix/build/emacs-build-system.scm @@ -76,8 +76,8 @@ archive, a directory, or an Emacs Lisp file." (define* (set-emacs-load-path #:key inputs #:allow-other-keys) "Set the EMACSLOADPATH environment variable so that dependencies are found." - (let* ((input-elisp-dirs (emacs-inputs-el-directories - (emacs-inputs-directories inputs))) + (let* ((input-elisp-dirs (inputs->el-directories + (inputs->directories inputs))) (emacs-load-path-value (string-join input-elisp-dirs ":" 'suffix))) (setenv "EMACSLOADPATH" emacs-load-path-value) @@ -210,39 +210,25 @@ store in '.el' files." "Check if NAME correspond to the name of an Emacs package." (string-prefix? "emacs-" name)) -(define (emacs-inputs inputs) - "Retrieve the list of Emacs packages from INPUTS." - (filter (match-lambda - ((label . directory) - (emacs-package? ((compose package-name->name+version - strip-store-file-name) - directory))) - (_ #f)) - inputs)) +(define (inputs->directories inputs) + "Extract the directory part from INPUTS." + (match inputs + (((names . directories) ...) directories))) -(define (emacs-inputs-directories inputs) - "Extract the list of Emacs package directories from INPUTS." - (let ((inputs (emacs-inputs inputs))) - (match inputs - (((names . directories) ...) directories)))) - -(define (emacs-input->el-directory emacs-input) - "Return the correct Elisp directory location of EMACS-INPUT or #f if none." - (let ((legacy-elisp-dir (string-append emacs-input %legacy-install-suffix)) +(define (input->el-directory input-dir) + "Return the correct Elisp directory location of INPUT-DIR-DIR or #f." + (let ((legacy-elisp-dir (string-append input-dir %legacy-install-suffix)) (guix-elisp-dir (string-append - emacs-input %install-suffix "/" - (store-directory->elpa-name-version emacs-input)))) + input-dir %install-suffix "/" + (store-directory->elpa-name-version input-dir)))) (cond ((file-exists? guix-elisp-dir) guix-elisp-dir) ((file-exists? legacy-elisp-dir) legacy-elisp-dir) - (else (format #t "warning: could not locate elisp directory under `~a'\n" - emacs-input) - #f)))) + (else #f)))) -(define (emacs-inputs-el-directories dirs) - "Build the list of Emacs Lisp directories from the Emacs package directory -DIRS." - (filter-map emacs-input->el-directory dirs)) +(define (inputs->el-directories input-dirs) + "Build the list of Emacs Lisp directories from the INPUT-DIRS." + (filter-map input->el-directory input-dirs)) (define (package-name-version->elpa-name-version name-ver) "Convert the Guix package NAME-VER to the corresponding ELPA name-version -- 2.16.1