3
0
Fork 0
forked from mirrors/nixpkgs

Update Julia to today's revision

This commit is contained in:
Michael Raskin 2013-06-11 15:44:39 +04:00
parent 1db5bd4aa9
commit 55249de924
4 changed files with 81 additions and 13 deletions

View file

@ -1,21 +1,21 @@
{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
, readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
, ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
, tcl, tk, xproto, libX11, git
, tcl, tk, xproto, libX11, git, mpfr
} :
let
realGcc = stdenv.gcc.gcc;
in
stdenv.mkDerivation rec {
pname = "julia";
date = "20130205";
date = "20130611";
name = "${pname}-git-${date}";
grisu_ver = "1.1.1";
dsfmt_ver = "2.2";
openblas_ver = "v0.2.2";
lapack_ver = "3.4.1";
arpack_ver = "3.1.2";
arpack_ver = "3.1.3";
clp_ver = "1.14.5";
lighttpd_ver = "1.4.29";
patchelf_ver = "0.6";
@ -36,9 +36,9 @@ stdenv.mkDerivation rec {
sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e";
};
arpack_src = fetchurl {
url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/497/get/";
name = "arpack-ng_${arpack_ver}.tar.gz";
sha256 = "1wk06bdjgap4hshx0lswzi7vxy2lrdx353y1k7yvm97mpsjvsf4k";
url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/607/get/";
name = "arpack-ng-${arpack_ver}.tar.gz";
sha256 = "039w7j3dr1xy35a3hp92zg2g92gmjq6xsv0g4awlb4cffy09nr2d";
};
lapack_src = fetchurl {
url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
@ -65,17 +65,17 @@ stdenv.mkDerivation rec {
src = fetchgit {
url = "git://github.com/JuliaLang/julia.git";
rev = "efc696bf74eec7605b4da19f6f1605ba99959ed3";
sha256 = "19if7aj3mrp84dg9g2d3zbhasrq0nz28djl9a01m0y4y9bfymp7s";
rev = "60cc4e44bf415dcda90f2bbe22300f842fe44098";
sha256 = "018s0zyvdkxjldbvcdv40q3v2gcjznyyql5pv3zhhy1iq11jddfz";
};
buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
openblas liblapack tcl tk xproto libX11 git
openblas liblapack tcl tk xproto libX11 git mpfr
];
configurePhase = ''
for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB;
for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR;
do
makeFlags="$makeFlags USE_SYSTEM_$i=1 "
done
@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
copy_kill_hash "${dsfmt_src}" deps/random
${if realGcc ==null then "" else
''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz "''}
''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr"''}
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
@ -110,6 +110,21 @@ stdenv.mkDerivation rec {
preBuild = ''
mkdir -p usr/lib
echo "$out"
mkdir -p "$out/lib"
(
cd "$(mktemp -d)"
for i in "${suitesparse}"/lib/lib*.a; do
ar -x $i
done
gcc *.o --shared -o "$out/lib/libsuitesparse.so"
)
cp "$out/lib/libsuitesparse.so" usr/lib
for i in umfpack cholmod amd camd colamd spqr; do
ln -s libsuitesparse.so "$out"/lib/lib$i.so;
ln -s libsuitesparse.so "usr"/lib/lib$i.so;
done
'';
preInstall = ''

View file

@ -0,0 +1,51 @@
{stdenv, fetchurl, gmp}:
stdenv.mkDerivation (rec {
name = "mpfr-3.1.2";
src = fetchurl {
url = "mirror://gnu/mpfr/${name}.tar.bz2";
sha256 = "0sqvpfkzamxdr87anzakf9dhkfh15lfmm5bsqajk02h1mxh3zivr";
};
buildInputs = [ gmp ];
doCheck = true;
enableParallelBuilding = true;
meta = {
homepage = http://www.mpfr.org/;
description = "GNU MPFR, a library for multiple-precision floating-point arithmetic";
longDescription = ''
The GNU MPFR library is a C library for multiple-precision
floating-point computations with correct rounding. MPFR is
based on the GMP multiple-precision library.
The main goal of MPFR is to provide a library for
multiple-precision floating-point computation which is both
efficient and has a well-defined semantics. It copies the good
ideas from the ANSI/IEEE-754 standard for double-precision
floating-point arithmetic (53-bit mantissa).
'';
license = "LGPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.all;
};
}
//
(stdenv.lib.optionalAttrs stdenv.isFreeBSD {
/* Work around a FreeBSD bug that otherwise leads to segfaults in
the test suite:
http://hydra.bordeaux.inria.fr/build/34862
http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00015.html
http://www.freebsd.org/cgi/query-pr.cgi?pr=161344
*/
configureFlags = [ "--disable-thread-safe" ];
}))

View file

@ -1,10 +1,10 @@
{ stdenv, fetchurl, blas, liblapack, gfortran } :
stdenv.mkDerivation rec {
version = "4.0.0";
version = "4.2.0";
name = "suitesparse-${version}";
src = fetchurl {
url = "http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-${version}.tar.gz" ;
sha256 = "1nvbdw10wa6654k8sa2vhr607q6fflcywyji5xd767cqpwag4v5j";
sha256 = "0i0ivsc5sr3jdz6nqq4wz5lwxc8rpnkqgddyhqqgfhwzgrcqh9v6";
};
buildInputs = [blas liblapack gfortran] ;
patches = [./disable-metis.patch];

View file

@ -2625,6 +2625,7 @@ let
julia = callPackage ../development/compilers/julia {
liblapack = liblapack.override {shared = true;};
mpfr = mpfr_3_1_2;
fftw = fftw.override {pthreads = true;};
fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
};
@ -3998,6 +3999,7 @@ let
#GMP ex-satellite, so better keep it near gmp
mpfr = callPackage ../development/libraries/mpfr { };
mpfr_3_1_2 = callPackage ../development/libraries/mpfr/3.1.2.nix { };
gst_all = {
inherit (pkgs) gstreamer gnonlin gst_python qt_gstreamer;