diff mbox series

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

Message ID 20200905214524.17263-1-timhowes@lavabit.com
State Accepted
Headers show
Series [bug#43208] gnu: emacs-ess: Update to 20.09. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

kasper.andersson--- via Guix-patches" via Sept. 5, 2020, 9:45 p.m. UTC
* 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(-)

Comments

Nicolas Goaziou Sept. 6, 2020, 8:02 a.m. UTC | #1
Hello,

Tim Howes via Guix-patches via <guix-patches@gnu.org> writes:

> * 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.

Thank you.

However, the base version should be 18.10.2, not 20.09, which is not
released yet.

BTW, when trying to build the package, I get the following failure:

     INFO     Scraping files for ess-autoloads.el... 
   .../lisp/ess-autoloads.el locked by nixbld@localh... (pid 103): (s, q, p, ?)? 
   Cannot resolve lock conflict in batch mode
   make[1]: *** [Makefile:62: ess-autoloads.el] Error 255

Can you build the package successfully?

Regards,
kasper.andersson--- via Guix-patches" via Sept. 8, 2020, 7:22 p.m. UTC | #2
> BTW, when trying to build the package, I get the following failure:
> 
>       INFO     Scraping files for ess-autoloads.el...
>     .../lisp/ess-autoloads.el locked by nixbld@localh... (pid 103): (s, q, p, ?)?
>     Cannot resolve lock conflict in batch mode
>     make[1]: *** [Makefile:62: ess-autoloads.el] Error 255
> 
> Can you build the package successfully?

It builds successfully sometimes, but fails sporadically due to this 
file locking issue. It seems like, the way the Makefile is set up, it's 
trying to build the ess-autoloads target multiple times in parallel, 
which is causing it to fail if two processes are trying to write to the 
file at the same time. I'll take a look later to see if I can prevent 
the problem.

Thanks,
Tim
Ludovic Courtès Sept. 24, 2020, 3:20 p.m. UTC | #3
Hi Tim & Nicolas,

Any update on this?

Thanks,
Ludo’.

Tim Howes <timhowes@lavabit.com> skribis:

>> BTW, when trying to build the package, I get the following failure:
>>       INFO     Scraping files for ess-autoloads.el...
>>     .../lisp/ess-autoloads.el locked by nixbld@localh... (pid 103): (s, q, p, ?)?
>>     Cannot resolve lock conflict in batch mode
>>     make[1]: *** [Makefile:62: ess-autoloads.el] Error 255
>> Can you build the package successfully?
>
> It builds successfully sometimes, but fails sporadically due to this
> file locking issue. It seems like, the way the Makefile is set up,
> it's trying to build the ess-autoloads target multiple times in
> parallel, which is causing it to fail if two processes are trying to
> write to the file at the same time. I'll take a look later to see if I
> can prevent the problem.
>
> Thanks,
> Tim
diff mbox series

Patch

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+))))