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

From: Tim Howes <[email-masked]>
Date: Sat, 5 Sep 2020 14:45:24 -0700

* gnu/packages/statistics.scm (emacs-ess): Update to 20.09.
[version]: Use version-revision-commit for version numbering.
[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 fixes the version numbering to consider this revision 0 of version
20.09, similar to how it's done for other emacs packages in guix.

 gnu/packages/statistics.scm | 47 +++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c1cefa8c41..c705c71460 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5803,31 +5803,28 @@ Java package that provides routines for various statistical distributions.")
     (license license:gpl2+)))
 
 (define-public emacs-ess
+  (let ((commit "82cd308ae54a6b918bbceb235e6bf02f53e48e19")
+        (version "20.09")
+        (revision "0"))
   (package
     (name "emacs-ess")
-    (version "18.10.2")
+    (version (git-version version revision commit))
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/emacs-ess/ESS")
-                    (commit (string-append "v" version))))
+                    (commit commit)))
               (sha256
                (base32
-                "1yq41l2bicwjrc0b731iic20cpcnz6ppigri1jn621qv2qv22vy3"))
+                "0zw6j8jzrdmy41g6313js7c0xlmc2wmiazx4d4wm6hdvykn8q39k"))
               (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 +5833,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 +5851,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")))))))
@@ -5877,4 +5874,4 @@ Java package that provides routines for various statistical distributions.")
     (description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
 Emacs.  It is designed to support editing of scripts and interaction with
 various statistical analysis programs such as R, Julia, and JAGS.")
-    (license license:gpl2+)))
+    (license license:gpl2+))))
-- 
2.28.0