[PATCH v1]: gnu: Add R.
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 From d2839cb8b65049990964bdfd20c890db5a8e453b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus ricardo.wur...@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 000..a0527bf --- /dev/null +++ b/gnu/packages/statistics.scm @@ -0,0 +1,124 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus rek...@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 +
Re: [PATCH v1]: gnu: Add R.
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 From 79df400084e15de6388c832ae3d1791e5d0c8519 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus ricardo.wur...@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 000..ff49b83 --- /dev/null +++ b/gnu/packages/statistics.scm @@ -0,0 +1,112 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus rek...@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/;) +
Re: [PATCH v1]: gnu: Add R.
Ricardo Wurmus ricardo.wur...@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’.