Julia: update/fix

This commit is contained in:
Michael Raskin 2013-02-05 11:24:00 +04:00
parent 76cc4e760b
commit a2ba6d5bdd
3 changed files with 54 additions and 16 deletions

View File

@ -1,14 +1,14 @@
{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib { stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
, readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl , readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
, ncurses, libunistring, lighttpd, patchelf, openblas, liblapack , ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
, tcl, tk, xproto, libX11 , tcl, tk, xproto, libX11, git
} : } :
let let
realGcc = stdenv.gcc.gcc; realGcc = stdenv.gcc.gcc;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "julia"; pname = "julia";
date = "20121209"; date = "20130205";
name = "${pname}-git-${date}"; name = "${pname}-git-${date}";
grisu_ver = "1.1.1"; grisu_ver = "1.1.1";
@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
clp_ver = "1.14.5"; clp_ver = "1.14.5";
lighttpd_ver = "1.4.29"; lighttpd_ver = "1.4.29";
patchelf_ver = "0.6"; patchelf_ver = "0.6";
pcre_ver = "8.31";
grisu_src = fetchurl { grisu_src = fetchurl {
url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz"; url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
@ -57,16 +58,20 @@ stdenv.mkDerivation rec {
url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2"; url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2";
sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw"; sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw";
}; };
pcre_src = fetchurl {
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_ver}.tar.bz2";
sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
};
src = fetchgit { src = fetchgit {
url = "git://github.com/JuliaLang/julia.git"; url = "git://github.com/JuliaLang/julia.git";
rev = "27b950f62aeb3664ab76e5d827b30b4885a9efb9"; rev = "efc696bf74eec7605b4da19f6f1605ba99959ed3";
sha256 = "0khx8ln2zq3vpj0g66hnsdhw04hxl79fq43rc06ggsmc1j4xrifb"; sha256 = "19if7aj3mrp84dg9g2d3zbhasrq0nz28djl9a01m0y4y9bfymp7s";
}; };
buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
openblas liblapack tcl tk xproto libX11 openblas liblapack tcl tk xproto libX11 git
]; ];
configurePhase = '' configurePhase = ''
@ -79,7 +84,7 @@ stdenv.mkDerivation rec {
cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')" cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
} }
for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${clp_src}" "${patchelf_src}" ; do for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${clp_src}" "${patchelf_src}" "${pcre_src}" ; do
copy_kill_hash "$i" deps copy_kill_hash "$i" deps
done done
copy_kill_hash "${dsfmt_src}" deps/random copy_kill_hash "${dsfmt_src}" deps/random
@ -105,18 +110,9 @@ stdenv.mkDerivation rec {
preBuild = '' preBuild = ''
mkdir -p usr/lib mkdir -p usr/lib
ln -s libuv.a usr/lib/uv.a
''; '';
preInstall = '' preInstall = ''
make -C deps install-tk-wrapper
'';
postInstall = ''
(
cd $out/share/julia/test/
$out/bin/julia runtests.jl all
) || true
''; '';
meta = { meta = {

View File

@ -0,0 +1,38 @@
{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
stdenv.mkDerivation rec {
name = "pcre-8.31";
src = fetchurl {
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
};
# The compiler on Darwin crashes with an internal error while building the
# C++ interface. Disabling optimizations on that platform remedies the
# problem. In case we ever update the Darwin GCC version, the exception for
# that platform ought to be removed.
configureFlags = ''
${if unicodeSupport then "--enable-unicode-properties" else ""}
${if !cplusplusSupport then "--disable-cpp" else ""}
'' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
doCheck = !stdenv.isCygwin; # XXX: test failure on Cygwin
meta = {
homepage = "http://www.pcre.org/";
description = "A library for Perl Compatible Regular Expressions";
license = "BSD-3";
longDescription = ''
The PCRE library is a set of functions that implement regular
expression pattern matching using the same syntax and semantics as
Perl 5. PCRE has its own native API, as well as a set of wrapper
functions that correspond to the POSIX regular expression API. The
PCRE library is free, even for building proprietary software.
'';
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.simons ];
};
}

View File

@ -2483,7 +2483,7 @@ let
jikes = callPackage ../development/compilers/jikes { }; jikes = callPackage ../development/compilers/jikes { };
julia = callPackage ../development/compilers/julia { julia = callPackage ../development/compilers/julia {
pcre = pcre_8_30; pcre = pcre_8_31;
liblapack = liblapack.override {shared = true;}; liblapack = liblapack.override {shared = true;};
fftw = fftw.override {pthreads = true;}; fftw = fftw.override {pthreads = true;};
fftwSinglePrec = fftwSinglePrec.override {pthreads = true;}; fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
@ -4775,6 +4775,10 @@ let
unicodeSupport = config.pcre.unicode or true; unicodeSupport = config.pcre.unicode or true;
}; };
pcre_8_31 = callPackage ../development/libraries/pcre/8.31.nix {
unicodeSupport = config.pcre.unicode or true;
};
pdf2xml = callPackage ../development/libraries/pdf2xml {} ; pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
phonon = callPackage ../development/libraries/phonon { }; phonon = callPackage ../development/libraries/phonon { };