Subject: [bug#43208] [PATCH] gnu: emacs-ess: Update to 20200903.1516.

From: Tim Howes <[email-masked]>
Date: Fri, 4 Sep 2020 16:50:23 -0700

* gnu/packages/statistics.scm (emacs-ess): Update to 20200903.1516.
[version]: Use latest commit, assign version based on commit date.
[source]: Fix snippet for removing julia-mode.  Remove snippet to modify
roxy-preview-Rd-test.  Add snippet to modify r-help-mode test.  Add
snippet to fix install target to install files to correct directories.
[arguments]: Add flag to specify INFODIR.  Remove patch modifying SHELL.
---
This updates emacs-ess to the current version on github and resolves
bugs #43093 and #42259.

 gnu/packages/statistics.scm | 43 ++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 24 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c1cefa8c41..aa14e2887f 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5805,29 +5805,24 @@ Java package that provides routines for various statistical distributions.")
 (define-public emacs-ess
   (package
     (name "emacs-ess")
-    (version "18.10.2")
+    ;; Use version number based on commit date and time (UTC), similar to melpa.
+    (version "20200903.1516")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/emacs-ess/ESS")
-                    (commit (string-append "v" version))))
+                    (commit "09c1adecf8406d85426d14e5efe2aaba6c59f224")))
               (sha256
                (base32
-                "1yq41l2bicwjrc0b731iic20cpcnz6ppigri1jn621qv2qv22vy3"))
+                "0hl8nhf8w3rfpfqb2bfzcbh4lpsk51p83w2j5fc2knd4da4sb1s5"))
               (file-name (git-file-name name version))
               (modules '((guix build utils)))
               (snippet
                '(begin
                   ;; Stop ESS from trying to bundle an external julia-mode.el.
                   (substitute* "lisp/Makefile"
-                    (("^ess-julia.elc: julia-mode.elc") "")
-                    (("^all: julia-mode.el")
-                     "all:"))
-                  ;; Include *.el files in install target.
-                  (substitute* "lisp/Makefile"
-                    (("\t\\$\\(INSTALL) \\$\\(ELC\\) \\$\\(LISPDIR\\)" elc)
-                     (string-append "\t$(INSTALL) $(ELS) ess-autoloads.el "
-                                    "$(LISPDIR)\n" elc)))
+                    ((" \\$\\(JULIAS)") "")
+                    (("\ttest.*julia-mode.*\\.el") ""))
                   ;; Only build docs in info format.
                   (substitute* "doc/Makefile"
                     (("all  : info text")
@@ -5836,12 +5831,16 @@ Java package that provides routines for various statistical distributions.")
                      "install: install-info"))
                   ;; Stop install-info from trying to update the info directory.
                   (substitute* "doc/Makefile"
-                    ((".*\\$\\(INFODIR\\)/dir.*") ""))
-                  ;; Fix roxygen preview test.
-                  (substitute* "test/ess-r-tests.el"
-                               (("Add together two numbers.\n")
-                                "Add together two numbers. ")
-                               (("##' add\\(10, 1\\)") "add(10, 1)"))
+                    ((".*/dir.*") ""))
+                  ;; Fix r-help-mode test.
+                  (substitute* "test/ess-test-r.el"
+                    (("\\(equal ess-help-object \"plot.default\")") "t"))
+                  ;; Install to correct directories.
+                  (substitute* "Makefile"
+                    (("mkdir -p \\$\\(ESSDESTDIR)")
+                     "$(MAKE) -C lisp install; $(MAKE) -C doc install")
+                    (("\\$\\(INSTALL) -R \\./\\* \\$\\(ESSDESTDIR)/")
+                     "$(MAKE) -C etc install"))
                   #t))))
     (build-system gnu-build-system)
     (arguments
@@ -5850,16 +5849,12 @@ Java package that provides routines for various statistical distributions.")
                             (string-append "ETCDIR=" %output
                                            ,base-directory "/etc")
                             (string-append "LISPDIR=" %output
-                                           ,base-directory))
+                                           ,base-directory)
+                            (string-append "INFODIR=" %output
+                                           "/share/info"))
          #: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"))))
-               #t))
            (replace 'check
              (lambda _
                (invoke "make" "test")))))))
-- 
2.28.0