unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH v1]: gnu: Add R.
@ 2015-02-13 11:59 Ricardo Wurmus
  2015-02-13 13:15 ` Ricardo Wurmus
  2015-02-13 23:22 ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2015-02-13 11:59 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 501 bytes --]

Hi Guix,

attached is a patch to add the statistics software R.

The test suite fails when using `guix build' but it's passing when run
in `guix environment --pure r' (where LANG is "en_GB.UTF-8").  Judging
from the error message I suspect that the failure is locale-related, but
I was not able to fix this by adding a build phase before `check'.

Do you have any ideas how to fix the test suite?

The patch also includes the definition of a new mirror for the R package
repository CRAN.

~~ Ricardo


[-- Attachment #2: 0001-gnu-Add-R.patch --]
[-- Type: text/x-patch, Size: 7078 bytes --]

From d2839cb8b65049990964bdfd20c890db5a8e453b Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Thu, 12 Feb 2015 12:58:11 +0100
Subject: [PATCH] gnu: Add R.

* gnu/packages/statistics.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it
* guix/download.scm (%mirrors): Add CRAN mirrors.
---
 gnu-system.am               |   1 +
 gnu/packages/statistics.scm | 124 ++++++++++++++++++++++++++++++++++++++++++++
 guix/download.scm           |  10 ++++
 3 files changed, 135 insertions(+)
 create mode 100644 gnu/packages/statistics.scm

diff --git a/gnu-system.am b/gnu-system.am
index 1a68b8b..0348bf1 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -257,6 +257,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/socat.scm			\
   gnu/packages/ssh.scm				\
   gnu/packages/stalonetray.scm			\
+  gnu/packages/statistics.scm			\
   gnu/packages/swig.scm				\
   gnu/packages/sxiv.scm				\
   gnu/packages/synergy.scm			\
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
new file mode 100644
index 0000000..a0527bf
--- /dev/null
+++ b/gnu/packages/statistics.scm
@@ -0,0 +1,124 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages statistics)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages texlive)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages which)
+  #:use-module (gnu packages xorg))
+
+(define-public r
+  (package
+    (name "r")
+    (version "3.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cran/src/base/R-"
+                                  (version-prefix version 1) "/R-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0ypsm11c7n49pgh2ricyhhpfhas3famscdazzdp2zq70rapm1ldw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(;; Tests fail probably because of locale issues:
+       ;; > tm <- seq(as.POSIXct("2012-06-01 06:00"), by = "6 hours", length.out = 24)
+       ;; Error in as.POSIXlt.character(x, tz, ...) :
+       ;;   character string is not in a standard unambiguous format
+       #:tests? #f
+       #:phases
+       ;; XXX This phase doesn't fix the tests.
+       (alist-cons-before
+        'check 'install-locales
+        (lambda _
+          ;; A bunch of tests require the availability of a UTF-8
+          ;; locale and otherwise fail.  Give them what they want.
+          (setenv "LOCPATH" (getcwd))
+          (setenv "LANG" "en_US.UTF-8")
+          (zero? (system* "localedef" "--no-archive"
+                          "--prefix" (getcwd) "-i" "en_US"
+                          "-f" "UTF-8" "./en_US.UTF-8")))
+        %standard-phases)
+       #:configure-flags
+       '("--with-blas"
+         "--with-lapack"
+         "--with-cairo"
+         "--with-libpng"
+         "--with-jpeglib"
+         "--with-libtiff"
+         "--with-ICU"
+         "--enable-R-shlib"
+         "--enable-BLAS-shlib"
+         "--with-system-zlib"
+         "--with-system-bzlib"
+         "--with-system-pcre"
+         "--with-system-tre"
+         "--with-system-xz")))  
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("atlas" ,atlas) ; --with-blas
+       ("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("gfortran" ,gfortran-4.8)
+       ("icu4c" ,icu4c)
+       ("icedtea6" ,icedtea6)
+       ("lapack" ,lapack)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("libxt" ,libxt)
+       ("pcre" ,pcre)
+       ("perl" ,perl)
+       ("readline" ,readline)
+       ("texlive" ,texlive) ; needed to make vignettes
+       ("texinfo" ,texinfo) ; for building HTML manuals
+       ("which" ,which) ; for tests/Examples/base-Ex.R
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (home-page "http://www.r-project.org/")
+    (synopsis "Language and environment for statistical computing and graphics")
+    (description
+     "R is a language and environment for statistical computing and graphics.
+R is similar to the award-winning S system, which was developed at Bell
+Laboratories by John Chambers et al.  It provides a wide variety of
+statistical and graphical techniques (linear and nonlinear modelling,
+statistical tests, time series analysis, classification, clustering, ...).
+
+R is designed as a true computer language with control-flow constructions for
+iteration and alternation, and it allows users to add additional functionality
+by defining new functions.  For computationally intensive tasks, C, C++ and
+Fortran code can be linked and called at run time.")
+    (license license:gpl3+)))
diff --git a/guix/download.scm b/guix/download.scm
index 9a18975..d87d02e 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -164,6 +164,16 @@
        "ftp://ftp.nara.wide.ad.jp/pub/CPAN/"
        "http://mirrors.163.com/cpan/"
        "ftp://cpan.mirror.ac.za/")
+      (cran
+       ;; Arbitrary mirrors from http://cran.r-project.org/mirrors.html
+       ;; This one automatically redirects to servers worldwide
+       "http://cran.rstudio.com/"
+       "http://cran.univ-lyon1.fr/"
+       "http://cran.r-mirror.de/"
+       "http://cran.ism.ac.jp/"
+       "http://cran.stat.auckland.ac.nz/"
+       "http://cran.mirror.ac.za/"
+       "http://cran.csie.ntu.edu.tw/")
       (imagemagick
        ;; from http://www.imagemagick.org/script/download.php
        ;; (without mirrors that are unavailable or not up to date)
-- 
2.1.0


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

* Re: [PATCH v1]: gnu: Add R.
  2015-02-13 11:59 [PATCH v1]: gnu: Add R Ricardo Wurmus
@ 2015-02-13 13:15 ` Ricardo Wurmus
  2015-02-13 13:20   ` David Thompson
  2015-02-13 23:22 ` Ludovic Courtès
  1 sibling, 1 reply; 5+ messages in thread
From: Ricardo Wurmus @ 2015-02-13 13:15 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 486 bytes --]


Ricardo Wurmus writes:

> The test suite fails when using `guix build' but it's passing when run
> in `guix environment --pure r' (where LANG is "en_GB.UTF-8").  Judging
> from the error message I suspect that the failure is locale-related, but
> I was not able to fix this by adding a build phase before `check'.
>
> Do you have any ideas how to fix the test suite?

Thanks to effa` on IRC I was able to fix it by setting the TZ variable.

Attached is the updated patch.

~~ Ricardo


[-- Attachment #2: 0001-gnu-Add-R.patch --]
[-- Type: text/x-patch, Size: 6412 bytes --]

From 79df400084e15de6388c832ae3d1791e5d0c8519 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Thu, 12 Feb 2015 12:58:11 +0100
Subject: [PATCH] gnu: Add R.

* gnu/packages/statistics.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it
* guix/download.scm (%mirrors): Add CRAN mirrors.
---
 gnu-system.am               |   1 +
 gnu/packages/statistics.scm | 112 ++++++++++++++++++++++++++++++++++++++++++++
 guix/download.scm           |  10 ++++
 3 files changed, 123 insertions(+)
 create mode 100644 gnu/packages/statistics.scm

diff --git a/gnu-system.am b/gnu-system.am
index 1a68b8b..0348bf1 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -257,6 +257,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/socat.scm			\
   gnu/packages/ssh.scm				\
   gnu/packages/stalonetray.scm			\
+  gnu/packages/statistics.scm			\
   gnu/packages/swig.scm				\
   gnu/packages/sxiv.scm				\
   gnu/packages/synergy.scm			\
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
new file mode 100644
index 0000000..ff49b83
--- /dev/null
+++ b/gnu/packages/statistics.scm
@@ -0,0 +1,112 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages statistics)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages pcre)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages texlive)
+  #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages which)
+  #:use-module (gnu packages xorg))
+
+(define-public r
+  (package
+    (name "r")
+    (version "3.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://cran/src/base/R-"
+                                  (version-prefix version 1) "/R-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0ypsm11c7n49pgh2ricyhhpfhas3famscdazzdp2zq70rapm1ldw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'check 'set-timezone
+        ;; Some tests require the timezone to be set.
+        (lambda _ (setenv "TZ" "UTC"))
+        %standard-phases)
+       #:configure-flags
+       '("--with-blas"
+         "--with-lapack"
+         "--with-cairo"
+         "--with-libpng"
+         "--with-jpeglib"
+         "--with-libtiff"
+         "--with-ICU"
+         "--enable-R-shlib"
+         "--enable-BLAS-shlib"
+         "--with-system-zlib"
+         "--with-system-bzlib"
+         "--with-system-pcre"
+         "--with-system-tre"
+         "--with-system-xz")))  
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("atlas" ,atlas) ; --with-blas
+       ("bzip2" ,bzip2)
+       ("cairo" ,cairo)
+       ("gfortran" ,gfortran-4.8)
+       ("icu4c" ,icu4c)
+       ("icedtea6" ,icedtea6)
+       ("lapack" ,lapack)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libtiff" ,libtiff)
+       ("libxt" ,libxt)
+       ("pcre" ,pcre)
+       ("perl" ,perl)
+       ("readline" ,readline)
+       ("texlive" ,texlive) ; needed to make vignettes
+       ("texinfo" ,texinfo) ; for building HTML manuals
+       ("which" ,which) ; for tests/Examples/base-Ex.R
+       ("xz" ,xz)
+       ("zlib" ,zlib)))
+    (home-page "http://www.r-project.org/")
+    (synopsis "Language and environment for statistical computing and graphics")
+    (description
+     "R is a language and environment for statistical computing and graphics.
+R is similar to the award-winning S system, which was developed at Bell
+Laboratories by John Chambers et al.  It provides a wide variety of
+statistical and graphical techniques (linear and nonlinear modelling,
+statistical tests, time series analysis, classification, clustering, ...).
+
+R is designed as a true computer language with control-flow constructions for
+iteration and alternation, and it allows users to add additional functionality
+by defining new functions.  For computationally intensive tasks, C, C++ and
+Fortran code can be linked and called at run time.")
+    (license license:gpl3+)))
diff --git a/guix/download.scm b/guix/download.scm
index 9a18975..d87d02e 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -164,6 +164,16 @@
        "ftp://ftp.nara.wide.ad.jp/pub/CPAN/"
        "http://mirrors.163.com/cpan/"
        "ftp://cpan.mirror.ac.za/")
+      (cran
+       ;; Arbitrary mirrors from http://cran.r-project.org/mirrors.html
+       ;; This one automatically redirects to servers worldwide
+       "http://cran.rstudio.com/"
+       "http://cran.univ-lyon1.fr/"
+       "http://cran.r-mirror.de/"
+       "http://cran.ism.ac.jp/"
+       "http://cran.stat.auckland.ac.nz/"
+       "http://cran.mirror.ac.za/"
+       "http://cran.csie.ntu.edu.tw/")
       (imagemagick
        ;; from http://www.imagemagick.org/script/download.php
        ;; (without mirrors that are unavailable or not up to date)
-- 
2.1.0


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

* Re: [PATCH v1]: gnu: Add R.
  2015-02-13 13:15 ` Ricardo Wurmus
@ 2015-02-13 13:20   ` David Thompson
  0 siblings, 0 replies; 5+ messages in thread
From: David Thompson @ 2015-02-13 13:20 UTC (permalink / raw)
  To: Ricardo Wurmus, Guix-devel

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> writes:

> Ricardo Wurmus writes:
>
>> The test suite fails when using `guix build' but it's passing when run
>> in `guix environment --pure r' (where LANG is "en_GB.UTF-8").  Judging
>> from the error message I suspect that the failure is locale-related, but
>> I was not able to fix this by adding a build phase before `check'.
>>
>> Do you have any ideas how to fix the test suite?
>
> Thanks to effa` on IRC I was able to fix it by setting the TZ variable.

Awesome work!  LGTM!

-- 
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate

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

* Re: [PATCH v1]: gnu: Add R.
  2015-02-13 11:59 [PATCH v1]: gnu: Add R Ricardo Wurmus
  2015-02-13 13:15 ` Ricardo Wurmus
@ 2015-02-13 23:22 ` Ludovic Courtès
  2015-02-16 15:37   ` Ricardo Wurmus
  1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2015-02-13 23:22 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:

> +    (inputs
> +     `(("atlas" ,atlas) ; --with-blas
> +       ("bzip2" ,bzip2)

Unless used for libbz2, move it to ‘native-inputs’.

> +       ("perl" ,perl)

Likewise.

> +       ("texlive" ,texlive) ; needed to make vignettes
> +       ("texinfo" ,texinfo) ; for building HTML manuals
> +       ("which" ,which) ; for tests/Examples/base-Ex.R

These 3 are definitely native inputs.

> +       ("xz" ,xz)

Most likely native input.

> +    (home-page "http://www.r-project.org/")
> +    (synopsis "Language and environment for statistical computing and graphics")
> +    (description
> +     "R is a language and environment for statistical computing and graphics.
> +R is similar to the award-winning S system, which was developed at Bell

‘guix lint’ should propose you a synopsis and description; could you use
them?

The rest LGTM.

Thanks for the good work!

Ludo’.

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

* Re: [PATCH v1]: gnu: Add R.
  2015-02-13 23:22 ` Ludovic Courtès
@ 2015-02-16 15:37   ` Ricardo Wurmus
  0 siblings, 0 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2015-02-16 15:37 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel


Ludovic Courtès writes:

> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:
>
>> +    (inputs
>> +     `(("atlas" ,atlas) ; --with-blas
>> +       ("bzip2" ,bzip2)
>
> Unless used for libbz2, move it to ‘native-inputs’.
>
>> +       ("perl" ,perl)
>
> Likewise.
>
>> +       ("texlive" ,texlive) ; needed to make vignettes
>> +       ("texinfo" ,texinfo) ; for building HTML manuals
>> +       ("which" ,which) ; for tests/Examples/base-Ex.R
>
> These 3 are definitely native inputs.
>
>> +       ("xz" ,xz)
>
> Most likely native input.

I fixed the inputs vs native-inputs issues.  Sorry about that.

>> +    (home-page "http://www.r-project.org/")
>> +    (synopsis "Language and environment for statistical computing and graphics")
>> +    (description
>> +     "R is a language and environment for statistical computing and graphics.
>> +R is similar to the award-winning S system, which was developed at Bell
>
> ‘guix lint’ should propose you a synopsis and description; could you use
> them?
>
> The rest LGTM.

I've taken over the description and synopsis suggested by "guix lint"
and pushed the patch.

Thanks again for the review!

~~ Ricardo

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

end of thread, other threads:[~2015-02-16 15:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-13 11:59 [PATCH v1]: gnu: Add R Ricardo Wurmus
2015-02-13 13:15 ` Ricardo Wurmus
2015-02-13 13:20   ` David Thompson
2015-02-13 23:22 ` Ludovic Courtès
2015-02-16 15:37   ` Ricardo Wurmus

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