nixpkgs/pkgs/applications/science/math/R/default.nix

109 lines
4.0 KiB
Nix
Raw Normal View History

{ stdenv, fetchurl, bzip2, gfortran, libX11, libXmu, libXt, libjpeg, libpng
, libtiff, ncurses, pango, pcre, perl, readline, tcl, texLive, tk, xz, zlib
, less, texinfo, graphviz, icu, pkgconfig, bison, imake, which, jdk, openblas
, curl, Cocoa, Foundation, cf-private, libobjc, tzdata
, withRecommendedPackages ? true
, enableStrictBarrier ? false
2013-05-23 10:35:54 +01:00
}:
stdenv.mkDerivation rec {
2015-12-11 09:39:13 +00:00
name = "R-3.2.3";
2013-05-23 10:35:54 +01:00
src = fetchurl {
2013-09-25 15:40:47 +01:00
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
2015-12-11 09:39:13 +00:00
sha256 = "b93b7d878138279234160f007cb9b7f81b8a72c012a15566e9ec5395cfd9b6c1";
2013-05-23 10:35:54 +01:00
};
2015-06-04 22:49:04 +01:00
buildInputs = [ bzip2 gfortran libX11 libXmu libXt
libXt libjpeg libpng libtiff ncurses pango pcre perl readline
texLive xz zlib less texinfo graphviz icu pkgconfig bison imake
which jdk openblas curl ]
++ stdenv.lib.optionals (!stdenv.isDarwin) [ tcl tk ]
++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation cf-private libobjc ];
2015-12-11 09:39:13 +00:00
patches = [ ./no-usr-local-search-paths.patch ];
preConfigure = ''
configureFlagsArray=(
--disable-lto
--with${stdenv.lib.optionalString (!withRecommendedPackages) "out"}-recommended-packages
2015-06-04 22:49:04 +01:00
--with-blas="-L${openblas}/lib -lopenblas"
--with-lapack="-L${openblas}/lib -lopenblas"
--with-readline
--with-tcltk --with-tcl-config="${tcl}/lib/tclConfig.sh" --with-tk-config="${tk}/lib/tkConfig.sh"
--with-cairo
--with-libpng
--with-jpeglib
--with-libtiff
--with-system-zlib
--with-system-bzlib
--with-system-pcre
--with-system-xz
--with-ICU
${stdenv.lib.optionalString enableStrictBarrier "--enable-strict-barrier"}
--enable-R-shlib
AR=$(type -p ar)
AWK=$(type -p gawk)
CC=$(type -p gcc)
CXX=$(type -p g++)
FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
JAVA_HOME="${jdk}"
LDFLAGS="-L${gfortran.cc}/lib"
RANLIB=$(type -p ranlib)
R_SHELL="${stdenv.shell}"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
--without-tcltk
--without-aqua
--disable-R-framework
CC="clang"
CXX="clang++"
OBJC="clang"
'' + ''
)
echo "TCLLIBPATH=${tk}/lib" >>etc/Renviron.in
'';
postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
sed -i 's|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g' src/library/base/R/datetime.R
sed -i 's|getenv("R_SHARE_DIR")|"${tzdata}/share"|g' src/extra/tzone/localtime.c
'';
installTargets = [ "install" "install-info" "install-pdf" ];
2015-03-09 14:55:17 +00:00
doCheck = true;
2013-05-23 10:35:54 +01:00
enableParallelBuilding = true;
setupHook = ./setup-hook.sh;
2013-05-23 10:35:54 +01:00
meta = {
homepage = "http://www.r-project.org/";
description = "Free software environment for statistical computing and graphics";
2013-05-23 10:35:54 +01:00
license = stdenv.lib.licenses.gpl2Plus;
longDescription = ''
GNU R is a language and environment for statistical computing and
graphics that provides a wide variety of statistical (linear and
nonlinear modelling, classical statistical tests, time-series
analysis, classification, clustering, ...) and graphical
techniques, and is highly extensible. One of R's strengths is the
ease with which well-designed publication-quality plots can be
produced, including mathematical symbols and formulae where
needed. R is an integrated suite of software facilities for data
manipulation, calculation and graphical display. It includes an
effective data handling and storage facility, a suite of operators
for calculations on arrays, in particular matrices, a large,
coherent, integrated collection of intermediate tools for data
analysis, graphical facilities for data analysis and display
either on-screen or on hardcopy, and a well-developed, simple and
effective programming language which includes conditionals, loops,
user-defined recursive functions and input and output facilities.
'';
2014-12-03 13:47:37 +00:00
platforms = stdenv.lib.platforms.all;
hydraPlatforms = stdenv.lib.platforms.linux;
2014-12-03 13:47:37 +00:00
2013-05-23 10:35:54 +01:00
maintainers = [ stdenv.lib.maintainers.simons ];
};
}