Subject: WIP: upgrade emacs-ess to 18.10.2

From: Nicolò Balzarotti <[email-masked]>
Date: Tue, 23 Jul 2019 22:11:16 +0000

Hello guix!
I'm sorry for this work in progress. I got emacs-ess 18 working, but I
really don't like how I did it (I don't think the way I'm helping emacs
finding julia-mode during the build is right), so I'm asking help here!

On irc, @rekado expressed interest in helping.

Thanks everybody,
Nicolò
From 39420bfed259d22bf0368fa0da0a6093a42e0f78 Mon Sep 17 00:00:00 2001
From: nixo <[email-masked]>
Date: Wed, 24 Jul 2019 00:04:37 +0200
Subject: [PATCH] wip: gnu packages: Upgrade emacs-ess to 18.10.2

---
 gnu/packages/statistics.scm | 62 ++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 32 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index eb5e5b4b76..35af00c58e 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5877,35 +5877,15 @@ Java package that provides routines for various statistical distributions.")
 (define-public emacs-ess
   (package
     (name "emacs-ess")
-    (version "17.11")
+    (version "18.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/emacs-ess/ESS/archive/v"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c"))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Stop ESS from trying to bundle an external julia-mode.el.
-                  (substitute* "lisp/Makefile"
-                    (("^\tjulia-mode.elc\\\\\n") "")
-                    (("^dist: all julia-mode.el")
-                     "dist: all"))
-                  ;; No need to build docs in so many formats.  Also, skipping
-                  ;; pdf lets us not pull in texlive.
-                  (substitute* "doc/Makefile"
-                    (("all  : info text html pdf")
-                     "all  : info")
-                    (("install: install-info install-other-docs")
-                     "install: install-info"))
-                  ;; Test fails upstream
-                  (substitute* "test/ess-r-tests.el"
-                    (("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()")
-                     "ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed"))
-                  #t))))
+                "0akz3wf6b4dvwm55875ap45rdb52m4fwxfs6nlfpccmm1q55nvbb"))
+              (modules '((guix build utils)))))
     (build-system gnu-build-system)
     (arguments
      (let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
@@ -5917,20 +5897,38 @@ Java package that provides routines for various statistical distributions.")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
+	   (delete 'check) 		;; emacs: standard input is not a tty
            (add-before 'build 'more-shebang-patching
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "Makeconf"
-                 (("SHELL = /bin/sh")
-                  (string-append "SHELL = " (which "sh"))))
-               #t))
-           (replace 'check
-             (lambda _
-               (invoke "make" "test")))))))
+	     (lambda* (#:key inputs propagated-inputs #:allow-other-keys)
+	       (substitute* "Makeconf"
+		 (("SHELL = /bin/sh")
+		  (string-append "SHELL = " (which "sh"))))
+	       ;; No need to build docs in so many formats.  Also, skipping
+	       ;; pdf lets us not pull in texlive.
+	       (substitute* "doc/Makefile"
+		 (("install: install-info install-other-docs")
+		  "install: install-info"))
+	       ;; This seems too much like a hack
+	       (substitute* "Makeconf"
+		 (("-no-site-file")
+		  (string-append "-no-site-file -L "
+				 (string-append
+				  (assoc-ref inputs "emacs-julia-mode")
+				  "/share/emacs/site-lisp/guix.d/*/"
+				  ))))
+	       (substitute* "lisp/Makefile"
+                 (("^\tjulia-mode.elc\\\\\n") "")
+                 (("^all: julia-mode.el")
+                  "all: ")
+	      	 (("^ess-julia.elc: julia-mode.elc")
+                  ""))
+	       #t)
+	     )))))
     (inputs
      `(("emacs" ,emacs-minimal)
        ("r-minimal" ,r-minimal)))
     (native-inputs
-     `(("perl" ,perl)
+     `(("which" ,which)
        ("texinfo" ,texinfo)))
     (propagated-inputs
      `(("emacs-julia-mode" ,emacs-julia-mode)))
-- 
2.22.0