unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add emacs-ess.
@ 2016-07-05 12:56 Roel Janssen
  2016-07-05 13:14 ` Ben Woodcroft
  2016-07-05 13:39 ` Ricardo Wurmus
  0 siblings, 2 replies; 15+ messages in thread
From: Roel Janssen @ 2016-07-05 12:56 UTC (permalink / raw)
  To: guix-devel

Dear Guix,

I have a question about the following patch to add emacs-ess.
By default, the build files rely upon a LaTeX distribution to be
installed to generate a PDF from its Texinfo documentation.

I know that texlive is quite a heavy package, so should I separate the
output of this package in "out" and "doc", and substitute/patch the
involved Makefiles?

You can find the patch below.

Kind regards,
Roel Janssen


From 0beacae7c386ea032cfac4511f4a9bc313fb1fb9 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 5 Jul 2016 14:53:03 +0200
Subject: [PATCH] gnu: Add emacs-ess.

* gnu/packages/emacs.scm (emacs-ess): New variable.
---
 gnu/packages/emacs.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index db88df1..3cc5875 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -42,11 +42,13 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xorg)
@@ -67,6 +69,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages scheme)
+  #:use-module (gnu packages statistics)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages mp3)
   #:use-module (guix utils)
@@ -2475,3 +2478,45 @@ news items, openrc and runscripts.")
 in English as you type.  It primarily detects \"weasel words\" and abuse of
 passive voice.")
     (license license:gpl3+)))
+
+(define-public emacs-ess
+  (package
+    (name "emacs-ess")
+    (version "16.04")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
+                                  version ".tgz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There is no test suite.
+       #: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 = " (assoc-ref inputs "bash")
+                               "/bin/sh")))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (system* "make" "install"
+                      (string-append "PREFIX=" (assoc-ref outputs "out"))))))))
+    (inputs
+     `(("emacs" ,emacs)
+       ("r" ,r)
+       ("bash" ,bash)
+       ("texinfo" ,texinfo)
+       ("texlive" ,texlive)))
+    (home-page "http://ess.r-project.org/")
+    (synopsis "Emacs mode for statistical analysis programs")
+    (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, S-Plus, SAS, Stata and
+OpenBUGS/JAGS.")
+    (license license:gpl2+)))
-- 
2.9.0

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-05 12:56 [PATCH] gnu: Add emacs-ess Roel Janssen
@ 2016-07-05 13:14 ` Ben Woodcroft
  2016-07-05 13:44   ` Roel Janssen
  2016-07-05 13:39 ` Ricardo Wurmus
  1 sibling, 1 reply; 15+ messages in thread
From: Ben Woodcroft @ 2016-07-05 13:14 UTC (permalink / raw)
  To: Roel Janssen, guix-devel

Hi.

On 05/07/16 20:56, Roel Janssen wrote:
> Dear Guix,
>
> I have a question about the following patch to add emacs-ess.

Thanks, I was also making a half-hearted attempt at this.

> By default, the build files rely upon a LaTeX distribution to be
> installed to generate a PDF from its Texinfo documentation.
>
> I know that texlive is quite a heavy package, so should I separate the
> output of this package in "out" and "doc", and substitute/patch the
> involved Makefiles?

Have you tried texlive-minimal ?

> You can find the patch below.

I didn't find the time to test the patch, but looks fine to me on the 
face of it. I had it in statistics.scm but I think emacs.scm is fine too.

ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-05 12:56 [PATCH] gnu: Add emacs-ess Roel Janssen
  2016-07-05 13:14 ` Ben Woodcroft
@ 2016-07-05 13:39 ` Ricardo Wurmus
  2016-07-06  8:28   ` Roel Janssen
  1 sibling, 1 reply; 15+ messages in thread
From: Ricardo Wurmus @ 2016-07-05 13:39 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Hi Roel,

thanks for taking on ESS!  (I was surprised to see that ESS is not
actually part of Emacs; I always assumed it was.)

>From 0beacae7c386ea032cfac4511f4a9bc313fb1fb9 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 5 Jul 2016 14:53:03 +0200
> Subject: [PATCH] gnu: Add emacs-ess.
>
> * gnu/packages/emacs.scm (emacs-ess): New variable.
> ---
>  gnu/packages/emacs.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index db88df1..3cc5875 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -42,11 +42,13 @@
>    #:use-module (guix build-system glib-or-gtk)
>    #:use-module (guix build-system trivial)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages bash)
>    #:use-module (gnu packages guile)
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages texinfo)
> +  #:use-module (gnu packages tex)
>    #:use-module (gnu packages tls)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages xorg)
> @@ -67,6 +69,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages pdf)
>    #:use-module (gnu packages scheme)
> +  #:use-module (gnu packages statistics)
>    #:use-module (gnu packages xiph)
>    #:use-module (gnu packages mp3)
>    #:use-module (guix utils)
> @@ -2475,3 +2478,45 @@ news items, openrc and runscripts.")
>  in English as you type.  It primarily detects \"weasel words\" and abuse of
>  passive voice.")
>      (license license:gpl3+)))
> +
> +(define-public emacs-ess
> +  (package
> +    (name "emacs-ess")
> +    (version "16.04")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
> +                                  version ".tgz"))
> +              (file-name (string-append name "-" version ".tar.gz"))

Here again I wonder if that’s really needed.

> +              (sha256
> +               (base32
> +                "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
> +    (build-system gnu-build-system)

I wonder: how much of ESS is written in elisp?  Does it make sense to
add some of the phases provided by the “emacs-build-system”?

> +    (arguments
> +     `(#:tests? #f ; There is no test suite.
> +       #: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 = " (assoc-ref inputs "bash")
> +                               "/bin/sh")))))

Guix has “/bin/sh”.  Do we really need to substitute it for bash?  If
this is necessary, you could also use “(which "bash")” instead.

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (system* "make" "install"
> +                      (string-append "PREFIX=" (assoc-ref outputs
> "out"))))))))

How about moving this to “#:make-flags”?

> +    (inputs
> +     `(("emacs" ,emacs)

Have you tried building with “emacs-minimal”?

> +       ("r" ,r)
> +       ("bash" ,bash)

I’m not sure but I think “bash” is an implicit input.

> +       ("texinfo" ,texinfo)
> +       ("texlive" ,texlive)))

As Ben wrote “texlive-minimal” might be sufficient.  Please also move
these two to “native-inputs” if that’s possible.

> +    (home-page "http://ess.r-project.org/")
> +    (synopsis "Emacs mode for statistical analysis programs")
> +    (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, S-Plus, SAS, Stata and
> +OpenBUGS/JAGS.")

I would write “such as R or OpenBUGS.”  The other options are
proprietary software, so I don’t think we should mention them.

> +    (license license:gpl2+)))

~~ Ricardo

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-05 13:14 ` Ben Woodcroft
@ 2016-07-05 13:44   ` Roel Janssen
  2016-07-05 13:59     ` Ben Woodcroft
  0 siblings, 1 reply; 15+ messages in thread
From: Roel Janssen @ 2016-07-05 13:44 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel


Ben Woodcroft writes:

> Hi.
>
> On 05/07/16 20:56, Roel Janssen wrote:
>> Dear Guix,
>>
>> I have a question about the following patch to add emacs-ess.
>
> Thanks, I was also making a half-hearted attempt at this.

Sorry for the duplicated effort.  I am happy to merge the two if you're
doing something more intelligent in your patch :).

>> By default, the build files rely upon a LaTeX distribution to be
>> installed to generate a PDF from its Texinfo documentation.
>>
>> I know that texlive is quite a heavy package, so should I separate the
>> output of this package in "out" and "doc", and substitute/patch the
>> involved Makefiles?
>
> Have you tried texlive-minimal ?

I hadn't thought of that.  Good idea.  Would it be acceptable to use
texlive-minimal instead, without splitting it in two outputs?

>> You can find the patch below.
>
> I didn't find the time to test the patch, but looks fine to me on the 
> face of it. I had it in statistics.scm but I think emacs.scm is fine too.

I think it is more Emacs-specific than statistics-specific.  But either
option is fine with me.

Thanks!

Kind regards,
Roel Janssen

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-05 13:44   ` Roel Janssen
@ 2016-07-05 13:59     ` Ben Woodcroft
  0 siblings, 0 replies; 15+ messages in thread
From: Ben Woodcroft @ 2016-07-05 13:59 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel



On 05/07/16 21:44, Roel Janssen wrote:
> Ben Woodcroft writes:
>
>> Hi.
>>
>> On 05/07/16 20:56, Roel Janssen wrote:
>>> Dear Guix,
>>>
>>> I have a question about the following patch to add emacs-ess.
>> Thanks, I was also making a half-hearted attempt at this.
> Sorry for the duplicated effort.  I am happy to merge the two if you're
> doing something more intelligent in your patch :).

Oh not at all, the half in 'half-heartedly' was very generous.

>
>>> By default, the build files rely upon a LaTeX distribution to be
>>> installed to generate a PDF from its Texinfo documentation.
>>>
>>> I know that texlive is quite a heavy package, so should I separate the
>>> output of this package in "out" and "doc", and substitute/patch the
>>> involved Makefiles?
>> Have you tried texlive-minimal ?
> I hadn't thought of that.  Good idea.  Would it be acceptable to use
> texlive-minimal instead, without splitting it in two outputs?

As Ricardo suggests perhaps they should be native-inputs instead, in 
which case splitting the outputs doesn't help since we do not have 
output-specific inputs.

ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-05 13:39 ` Ricardo Wurmus
@ 2016-07-06  8:28   ` Roel Janssen
  2016-07-06  8:44     ` Ricardo Wurmus
  0 siblings, 1 reply; 15+ messages in thread
From: Roel Janssen @ 2016-07-06  8:28 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hello Ricardo,

Thanks for your quick and elaborate reply.

Ricardo Wurmus writes:

> Hi Roel,
>
> thanks for taking on ESS!  (I was surprised to see that ESS is not
> actually part of Emacs; I always assumed it was.)
>
>>From 0beacae7c386ea032cfac4511f4a9bc313fb1fb9 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 5 Jul 2016 14:53:03 +0200
>> Subject: [PATCH] gnu: Add emacs-ess.
>>
>> * gnu/packages/emacs.scm (emacs-ess): New variable.
>> ---
>>  gnu/packages/emacs.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 45 insertions(+)
>>
>> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
>> index db88df1..3cc5875 100644
>> --- a/gnu/packages/emacs.scm
>> +++ b/gnu/packages/emacs.scm
>> @@ -42,11 +42,13 @@
>>    #:use-module (guix build-system glib-or-gtk)
>>    #:use-module (guix build-system trivial)
>>    #:use-module (gnu packages)
>> +  #:use-module (gnu packages bash)
>>    #:use-module (gnu packages guile)
>>    #:use-module (gnu packages gtk)
>>    #:use-module (gnu packages gnome)
>>    #:use-module (gnu packages ncurses)
>>    #:use-module (gnu packages texinfo)
>> +  #:use-module (gnu packages tex)
>>    #:use-module (gnu packages tls)
>>    #:use-module (gnu packages pkg-config)
>>    #:use-module (gnu packages xorg)
>> @@ -67,6 +69,7 @@
>>    #:use-module (gnu packages perl)
>>    #:use-module (gnu packages pdf)
>>    #:use-module (gnu packages scheme)
>> +  #:use-module (gnu packages statistics)
>>    #:use-module (gnu packages xiph)
>>    #:use-module (gnu packages mp3)
>>    #:use-module (guix utils)
>> @@ -2475,3 +2478,45 @@ news items, openrc and runscripts.")
>>  in English as you type.  It primarily detects \"weasel words\" and abuse of
>>  passive voice.")
>>      (license license:gpl3+)))
>> +
>> +(define-public emacs-ess
>> +  (package
>> +    (name "emacs-ess")
>> +    (version "16.04")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
>> +                                  version ".tgz"))
>> +              (file-name (string-append name "-" version ".tar.gz"))
>
> Here again I wonder if that’s really needed.

You're right, again.  So I removed it.

>> +              (sha256
>> +               (base32
>> +                "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
>> +    (build-system gnu-build-system)
>
> I wonder: how much of ESS is written in elisp?  Does it make sense to
> add some of the phases provided by the “emacs-build-system”?

I tried building it with the emacs-build-system instead, but that fails
on not finding "/bin/sh".  Did it not patch that out?

Maybe I am missing the point, but it seems that the build system behaves
just fine with gnu-build-system.

>> +    (arguments
>> +     `(#:tests? #f ; There is no test suite.
>> +       #: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 = " (assoc-ref inputs "bash")
>> +                               "/bin/sh")))))
>
> Guix has “/bin/sh”.  Do we really need to substitute it for bash?  If
> this is necessary, you could also use “(which "bash")” instead.

That's odd.  I was under the impression that "/bin/sh" is not available
during the build, because that's where the emacs-build-system fails at.

We don't need bash indeed, so I used '(which "sh")' instead.  This is
pretty cool!

>> +         (replace 'install
>> +           (lambda* (#:key outputs #:allow-other-keys)
>> +             (system* "make" "install"
>> +                      (string-append "PREFIX=" (assoc-ref outputs
>> "out"))))))))
>
> How about moving this to “#:make-flags”?

Indeed.  Moved it to #:make-flags.

>> +    (inputs
>> +     `(("emacs" ,emacs)
>
> Have you tried building with “emacs-minimal”?

Now I have, and that seems to work too.  I updated the patch accordingly.

>> +       ("r" ,r)
>> +       ("bash" ,bash)
>
> I’m not sure but I think “bash” is an implicit input.
>
>> +       ("texinfo" ,texinfo)
>> +       ("texlive" ,texlive)))
>
> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
> these two to “native-inputs” if that’s possible.

Unfortunately, when building with texlive-minimal, we are missing a
font:
  !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
  /bin/pdftex (file cmr9): Font cmr9 at 600 not found
   ==> Fatal error occurred, no output PDF file produced!

Which makes the build fail.
So I think we need 'texlive' instead.

>> +    (home-page "http://ess.r-project.org/")
>> +    (synopsis "Emacs mode for statistical analysis programs")
>> +    (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, S-Plus, SAS, Stata and
>> +OpenBUGS/JAGS.")
>
> I would write “such as R or OpenBUGS.”  The other options are
> proprietary software, so I don’t think we should mention them.

Oh right.  Sorry I didn't actually check out those projects, and I
didn't know they were proprietary..  I updated the patch.

>> +    (license license:gpl2+)))
>
> ~~ Ricardo

Other than these changes, I found out that the build process expects
perl to be available when building the documentation.  Therefore, I
included perl in the native-inputs.

So this brings us to the following patch:

From d54a474938fc9653fe1fb5c5c953f9dc9566a7d9 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Wed, 6 Jul 2016 10:26:01 +0200
Subject: [PATCH] gnu: Add emacs-ess.

* gnu/packages/emacs.scm (emacs-ess): New variable.
---
 gnu/packages/emacs.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index db88df1..78557e4 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -46,6 +46,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages pkg-config)
@@ -67,6 +68,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages scheme)
+  #:use-module (gnu packages statistics)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages mp3)
   #:use-module (guix utils)
@@ -2098,6 +2100,43 @@ that highlights non-conforming text.  The subset of the English language called
 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
       (license license:gpl3+))))
 
+(define-public emacs-ess
+  (package
+    (name "emacs-ess")
+    (version "16.04")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
+                                  version ".tgz"))
+              (sha256
+               (base32
+                "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There is no test suite.
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #: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")))))))))
+    (inputs
+     `(("emacs" ,emacs-minimal)
+       ("r" ,r)))
+    (native-inputs
+     `(("perl" ,perl)
+       ("texinfo" ,texinfo)
+       ("texlive" ,texlive)))
+    (home-page "http://ess.r-project.org/")
+    (synopsis "Emacs mode for statistical analysis programs")
+    (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 and OpenBUGS.")
+    (license license:gpl2+)))
+
 (define-public emacs-smex
   (package
     (name "emacs-smex")
-- 
2.9.0

Kind regards,
Roel Janssen

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06  8:28   ` Roel Janssen
@ 2016-07-06  8:44     ` Ricardo Wurmus
  2016-07-06 10:02       ` Roel Janssen
  2016-07-09 19:31       ` Andreas Enge
  0 siblings, 2 replies; 15+ messages in thread
From: Ricardo Wurmus @ 2016-07-06  8:44 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Hi Roel,

>> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
>> these two to “native-inputs” if that’s possible.
>
> Unfortunately, when building with texlive-minimal, we are missing a
> font:
>   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>    ==> Fatal error occurred, no output PDF file produced!

Too bad!  We should take some time to figure out how to split up
texlive and make it find modules via some search path.  I’m afraid this
might take a long time.

> So this brings us to the following patch:
>
>From d54a474938fc9653fe1fb5c5c953f9dc9566a7d9 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Wed, 6 Jul 2016 10:26:01 +0200
> Subject: [PATCH] gnu: Add emacs-ess.
>
> * gnu/packages/emacs.scm (emacs-ess): New variable.
> ---
>  gnu/packages/emacs.scm | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index db88df1..78557e4 100644
> --- a/gnu/packages/emacs.scm
> +++ b/gnu/packages/emacs.scm
> @@ -46,6 +46,7 @@
>    #:use-module (gnu packages gtk)
>    #:use-module (gnu packages gnome)
>    #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages tex)
>    #:use-module (gnu packages texinfo)
>    #:use-module (gnu packages tls)
>    #:use-module (gnu packages pkg-config)
> @@ -67,6 +68,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages pdf)
>    #:use-module (gnu packages scheme)
> +  #:use-module (gnu packages statistics)
>    #:use-module (gnu packages xiph)
>    #:use-module (gnu packages mp3)
>    #:use-module (guix utils)
> @@ -2098,6 +2100,43 @@ that highlights non-conforming text.  The subset of the English language called
>  E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
>        (license license:gpl3+))))
>  
> +(define-public emacs-ess
> +  (package
> +    (name "emacs-ess")
> +    (version "16.04")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
> +                                  version ".tgz"))
> +              (sha256
> +               (base32
> +                "0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f ; There is no test suite.
> +       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
> +       #: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")))))))))
> +    (inputs
> +     `(("emacs" ,emacs-minimal)
> +       ("r" ,r)))
> +    (native-inputs
> +     `(("perl" ,perl)
> +       ("texinfo" ,texinfo)
> +       ("texlive" ,texlive)))
> +    (home-page "http://ess.r-project.org/")
> +    (synopsis "Emacs mode for statistical analysis programs")
> +    (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 and OpenBUGS.")
> +    (license license:gpl2+)))
> +
>  (define-public emacs-smex
>    (package
>      (name "emacs-smex")

This looks good to me now.  Thanks again for the patch!

~~ Ricardo

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06  8:44     ` Ricardo Wurmus
@ 2016-07-06 10:02       ` Roel Janssen
  2016-07-06 10:12         ` Ricardo Wurmus
  2016-07-09 19:31       ` Andreas Enge
  1 sibling, 1 reply; 15+ messages in thread
From: Roel Janssen @ 2016-07-06 10:02 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Hi Roel,
>
>>> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
>>> these two to “native-inputs” if that’s possible.
>>
>> Unfortunately, when building with texlive-minimal, we are missing a
>> font:
>>   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>>   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>>    ==> Fatal error occurred, no output PDF file produced!
>
> Too bad!  We should take some time to figure out how to split up
> texlive and make it find modules via some search path.  I’m afraid this
> might take a long time.

Does that mean we should put emacs-ess on hold until we have fixed this?

Thanks,
Roel Janssen

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06 10:02       ` Roel Janssen
@ 2016-07-06 10:12         ` Ricardo Wurmus
  2016-07-06 10:46           ` Roel Janssen
  0 siblings, 1 reply; 15+ messages in thread
From: Ricardo Wurmus @ 2016-07-06 10:12 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Hi Roel,
>>
>>>> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
>>>> these two to “native-inputs” if that’s possible.
>>>
>>> Unfortunately, when building with texlive-minimal, we are missing a
>>> font:
>>>   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>>>   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>>>    ==> Fatal error occurred, no output PDF file produced!
>>
>> Too bad!  We should take some time to figure out how to split up
>> texlive and make it find modules via some search path.  I’m afraid this
>> might take a long time.
>
> Does that mean we should put emacs-ess on hold until we have fixed this?

No, not at all.  Use “texlive” in this case.  I was just trying to
express that this is a recurring itch that needs scratching :)

~~ Ricardo

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06 10:12         ` Ricardo Wurmus
@ 2016-07-06 10:46           ` Roel Janssen
  2016-07-06 10:52             ` Ricardo Wurmus
  0 siblings, 1 reply; 15+ messages in thread
From: Roel Janssen @ 2016-07-06 10:46 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> Ricardo Wurmus writes:
>>
>>> Hi Roel,
>>>
>>>>> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
>>>>> these two to “native-inputs” if that’s possible.
>>>>
>>>> Unfortunately, when building with texlive-minimal, we are missing a
>>>> font:
>>>>   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>>>>   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>>>>    ==> Fatal error occurred, no output PDF file produced!
>>>
>>> Too bad!  We should take some time to figure out how to split up
>>> texlive and make it find modules via some search path.  I’m afraid this
>>> might take a long time.
>>
>> Does that mean we should put emacs-ess on hold until we have fixed this?
>
> No, not at all.  Use “texlive” in this case.  I was just trying to
> express that this is a recurring itch that needs scratching :)

Right.  I agree.  So I can push emacs-ess?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06 10:46           ` Roel Janssen
@ 2016-07-06 10:52             ` Ricardo Wurmus
  0 siblings, 0 replies; 15+ messages in thread
From: Ricardo Wurmus @ 2016-07-06 10:52 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> Ricardo Wurmus writes:
>>>
>>>> Hi Roel,
>>>>
>>>>>> As Ben wrote “texlive-minimal” might be sufficient.  Please also move
>>>>>> these two to “native-inputs” if that’s possible.
>>>>>
>>>>> Unfortunately, when building with texlive-minimal, we are missing a
>>>>> font:
>>>>>   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>>>>>   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>>>>>    ==> Fatal error occurred, no output PDF file produced!
>>>>
>>>> Too bad!  We should take some time to figure out how to split up
>>>> texlive and make it find modules via some search path.  I’m afraid this
>>>> might take a long time.
>>>
>>> Does that mean we should put emacs-ess on hold until we have fixed this?
>>
>> No, not at all.  Use “texlive” in this case.  I was just trying to
>> express that this is a recurring itch that needs scratching :)
>
> Right.  I agree.  So I can push emacs-ess?

I have no objections.  Since nobody else has raised any objections I’d
say: please push!

~~ Ricardo

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-06  8:44     ` Ricardo Wurmus
  2016-07-06 10:02       ` Roel Janssen
@ 2016-07-09 19:31       ` Andreas Enge
  2016-07-10 10:39         ` Roel Janssen
  1 sibling, 1 reply; 15+ messages in thread
From: Andreas Enge @ 2016-07-09 19:31 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Hello!

On Wed, Jul 06, 2016 at 10:44:48AM +0200, Ricardo Wurmus wrote:
> > Unfortunately, when building with texlive-minimal, we are missing a
> > font:
> >   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
> >   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
> >    ==> Fatal error occurred, no output PDF file produced!
> Too bad!  We should take some time to figure out how to split up
> texlive and make it find modules via some search path.  I’m afraid this
> might take a long time.

Right now, I would also be happy to make texlive-minimal a little bit bigger.
The cmr fonts should definitely be included; and I thought I had done so.
If you know what is missing, we could delete a little bit less. To be honest,
the texlive-minimal package does not meet my expectations, since there are
more packages for which it is not sufficient to build the documentation.
But after an afternoon of building and rebuilding it with more or fewer files
deleted, I did not have the energy to continue after it worked on the pari-gp
package with which I made the tests...

Andreas

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-09 19:31       ` Andreas Enge
@ 2016-07-10 10:39         ` Roel Janssen
  2016-07-10 13:26           ` Andreas Enge
  0 siblings, 1 reply; 15+ messages in thread
From: Roel Janssen @ 2016-07-10 10:39 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel


Andreas Enge writes:

> Hello!
>
> On Wed, Jul 06, 2016 at 10:44:48AM +0200, Ricardo Wurmus wrote:
>> > Unfortunately, when building with texlive-minimal, we are missing a
>> > font:
>> >   !pdfTeX error: /gnu/store/gnh4kn47mn3m2rlgm9i9xl3wmq2kahia-texlive-minimal-2016
>> >   /bin/pdftex (file cmr9): Font cmr9 at 600 not found
>> >    ==> Fatal error occurred, no output PDF file produced!
>> Too bad!  We should take some time to figure out how to split up
>> texlive and make it find modules via some search path.  I’m afraid this
>> might take a long time.
>
> Right now, I would also be happy to make texlive-minimal a little bit bigger.
> The cmr fonts should definitely be included; and I thought I had done so.
> If you know what is missing, we could delete a little bit less. To be honest,
> the texlive-minimal package does not meet my expectations, since there are
> more packages for which it is not sufficient to build the documentation.
> But after an afternoon of building and rebuilding it with more or fewer files
> deleted, I did not have the energy to continue after it worked on the pari-gp
> package with which I made the tests...

I was thinking about packaging the fonts separately, but I haven't at
all looked at whether that is a sane thing to do.  Do you have a
particular list of packages where texlive-minimal fails to be sufficient
to build documentation, or can I generate that list by looking for the
texlive input?

Kind regards,
Roel Janssen

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-10 10:39         ` Roel Janssen
@ 2016-07-10 13:26           ` Andreas Enge
  2016-07-10 15:17             ` Roel Janssen
  0 siblings, 1 reply; 15+ messages in thread
From: Andreas Enge @ 2016-07-10 13:26 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel

On Sun, Jul 10, 2016 at 12:39:37PM +0200, Roel Janssen wrote:
> I was thinking about packaging the fonts separately, but I haven't at
> all looked at whether that is a sane thing to do.  Do you have a
> particular list of packages where texlive-minimal fails to be sufficient
> to build documentation, or can I generate that list by looking for the
> texlive input?

Well, instead of packaging fonts separately and adding them back to
texlive-minimal, it should be enough to not delete them in the first place
for the texlive-minimal package... I did not try to replace texlive for all
packages where it is used for building documentation, and do not remember
the list of packages I tried. I think I tried python-matplotlib and lilypond.

Andreas

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH] gnu: Add emacs-ess.
  2016-07-10 13:26           ` Andreas Enge
@ 2016-07-10 15:17             ` Roel Janssen
  0 siblings, 0 replies; 15+ messages in thread
From: Roel Janssen @ 2016-07-10 15:17 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel


Andreas Enge writes:

> On Sun, Jul 10, 2016 at 12:39:37PM +0200, Roel Janssen wrote:
>> I was thinking about packaging the fonts separately, but I haven't at
>> all looked at whether that is a sane thing to do.  Do you have a
>> particular list of packages where texlive-minimal fails to be sufficient
>> to build documentation, or can I generate that list by looking for the
>> texlive input?
>
> Well, instead of packaging fonts separately and adding them back to
> texlive-minimal, it should be enough to not delete them in the first place
> for the texlive-minimal package... I did not try to replace texlive for all
> packages where it is used for building documentation, and do not remember
> the list of packages I tried. I think I tried python-matplotlib and lilypond.

Right.  I'll have a go at it in the next couple of days and report back
any progress.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-07-10 15:17 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-05 12:56 [PATCH] gnu: Add emacs-ess Roel Janssen
2016-07-05 13:14 ` Ben Woodcroft
2016-07-05 13:44   ` Roel Janssen
2016-07-05 13:59     ` Ben Woodcroft
2016-07-05 13:39 ` Ricardo Wurmus
2016-07-06  8:28   ` Roel Janssen
2016-07-06  8:44     ` Ricardo Wurmus
2016-07-06 10:02       ` Roel Janssen
2016-07-06 10:12         ` Ricardo Wurmus
2016-07-06 10:46           ` Roel Janssen
2016-07-06 10:52             ` Ricardo Wurmus
2016-07-09 19:31       ` Andreas Enge
2016-07-10 10:39         ` Roel Janssen
2016-07-10 13:26           ` Andreas Enge
2016-07-10 15:17             ` Roel Janssen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).