Subject: [bug#28365] [PATCH] gnu: emacs-ess: Include the etc directory in the build

From: Roel Janssen <[email-masked]>
Date: Wed, 06 Sep 2017 12:20:41 +0200

>From f8ae717ae7dd5db7f7c0c477b7c871b843607de5 Mon Sep 17 00:00:00 2001
From: Roel Janssen <[email-masked]>
Date: Wed, 6 Sep 2017 12:14:18 +0200
Subject: [PATCH] gnu: emacs-ess: Include the etc directory in the build
 output.

* gnu/packages/emacs.scm (emacs-ess):  Also copy the etc directory.
---
 gnu/packages/emacs.scm | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index bc01d5777..1e29f357c 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -3209,22 +3209,25 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
                 "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; There is no test suite.
-       #:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "LISPDIR=" %output
-                                         "/share/emacs/site-lisp/guix.d/ess"))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'more-shebang-patching
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "Makeconf"
-               (("SHELL = /bin/sh")
-                (string-append "SHELL = " (which "sh"))))))
-         ;; FIXME: the texlive-union insists on regenerating fonts.  It stores
-         ;; them in HOME, so it needs to be writeable.
-         (add-before 'build 'set-HOME
-           (lambda _ (setenv "HOME" "/tmp") #t)))))
+     (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
+       `(#:tests? #f ; There is no test suite.
+         #:make-flags (list (string-append "PREFIX=" %output)
+                            (string-append "ETCDIR=" %output "/"
+                                           ,base-directory "/etc")
+                            (string-append "LISPDIR=" %output "/"
+                                           ,base-directory))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-before 'build 'more-shebang-patching
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "Makeconf"
+                 (("SHELL = /bin/sh")
+                  (string-append "SHELL = " (which "sh"))))))
+           ;; FIXME: the texlive-union insists on regenerating fonts.  It stores
+           ;; them in HOME, so it needs to be writeable.
+           (add-before 'build 'set-HOME
+             (lambda _ (setenv "HOME" "/tmp") #t))))))
     (inputs
      `(("emacs" ,emacs-minimal)
        ("r-minimal" ,r-minimal)))
-- 
2.14.1

Dear Guix,

When loading ESS "the standard way":
  (require 'ess-site)

it fails to load because it cannot find the "etc" directory that should
ship with this package.

This patch puts that directory and its contents (as generated by the
build system) into $PROFILE/share/emacs/site-lisp/guix.d/ess/etc.

After this change, I was able to load ESS "the standard way".

Thanks for your time.

Kind regards,
Roel Janssen