+29
pkgs/development/compilers/julia/0001.1-use-system-utf8proc.patch
+29
pkgs/development/compilers/julia/0001.1-use-system-utf8proc.patch
···
1
+
From 54a66b5728ec98f44a1768f064509be4fd3f2ef6 Mon Sep 17 00:00:00 2001
2
+
From: Thomas Tuegel <ttuegel@gmail.com>
3
+
Date: Sat, 10 Oct 2015 13:09:48 -0500
4
+
Subject: [PATCH 1/3] use system utf8proc
5
+
6
+
---
7
+
src/flisp/Makefile | 6 +++---
8
+
1 file changed, 3 insertions(+), 3 deletions(-)
9
+
10
+
diff --git a/src/flisp/Makefile b/src/flisp/Makefile
11
+
index bec8624..5437b5c 100644
12
+
--- a/src/flisp/Makefile
13
+
+++ b/src/flisp/Makefile
14
+
@@ -24,9 +24,9 @@ DOBJS = $(SRCS:%.c=$(BUILDDIR)/%.dbg.obj)
15
+
LLTDIR := ../support
16
+
LLT_release := $(BUILDDIR)/$(LLTDIR)/libsupport.a
17
+
LLT_debug := $(BUILDDIR)/$(LLTDIR)/libsupport-debug.a
18
+
-LIBFILES_release := $(LLT_release) $(LIBUV) $(LIBUTF8PROC)
19
+
-LIBFILES_debug := $(LLT_debug) $(LIBUV) $(LIBUTF8PROC)
20
+
-LIBS :=
21
+
+LIBFILES_release := $(LLT_release) $(LIBUV)
22
+
+LIBFILES_debug := $(LLT_debug) $(LIBUV)
23
+
+LIBS := $(LIBUTF8PROC)
24
+
ifneq ($(OS),WINNT)
25
+
LIBS += -lpthread
26
+
endif
27
+
--
28
+
2.5.2
29
+
+170
pkgs/development/compilers/julia/git.nix
+170
pkgs/development/compilers/julia/git.nix
···
1
+
{ stdenv, fetchgit, fetchurl
2
+
# build tools
3
+
, gfortran, m4, makeWrapper, patchelf, perl, which, python2
4
+
# libjulia dependencies
5
+
, libunwind, llvm, readline, utf8proc, zlib
6
+
# standard library dependencies
7
+
, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
8
+
# linear algebra
9
+
, openblas, arpack, suitesparse
10
+
}:
11
+
12
+
with stdenv.lib;
13
+
14
+
# All dependencies must use the same OpenBLAS.
15
+
let
16
+
arpack_ = arpack;
17
+
suitesparse_ = suitesparse;
18
+
in
19
+
let
20
+
arpack = arpack_.override { inherit openblas; };
21
+
suitesparse = suitesparse_.override { inherit openblas; };
22
+
in
23
+
24
+
let
25
+
dsfmtVersion = "2.2.3";
26
+
dsfmt = fetchurl {
27
+
url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmtVersion}.tar.gz";
28
+
sha256 = "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42";
29
+
};
30
+
31
+
libuvVersion = "07730c4bd595b4d45a498a8ee0bcd53878ff7c10";
32
+
libuv = fetchurl {
33
+
url = "https://api.github.com/repos/JuliaLang/libuv/tarball/${libuvVersion}";
34
+
sha256 = "19nk8vdvx2mxyrwpndb7888c3b237ja5xvxr3jk5ah77ix3srr3h";
35
+
};
36
+
37
+
rmathVersion = "0.1";
38
+
rmath-julia = fetchurl {
39
+
url = "https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v${rmathVersion}";
40
+
sha256 = "0ai5dhjc43zcvangz123ryxmlbm51s21rg13bllwyn98w67arhb4";
41
+
};
42
+
43
+
virtualenvVersion = "1.11.6";
44
+
virtualenv = fetchurl {
45
+
url = "https://pypi.python.org/packages/source/v/virtualenv/virtualenv-${virtualenvVersion}.tar.gz";
46
+
sha256 = "1xq4prmg25n9cz5zcvbqx68lmc3kl39by582vd8pzs9f3qalqyiy";
47
+
};
48
+
in
49
+
50
+
stdenv.mkDerivation rec {
51
+
pname = "julia";
52
+
version = "0.4.4-pre-2016-02-08";
53
+
name = "${pname}-${version}";
54
+
55
+
src = fetchgit {
56
+
url = "https://github.com/JuliaLang/${pname}";
57
+
rev = "cb93e6b70b4b1313b4de8c54e55e85c8eb43daa3";
58
+
sha256 = "11dmbjqiidlbh8sj5s09zsbfslm3zs0kw7iq40281hl5dfsr7zm6";
59
+
};
60
+
61
+
prePatch = ''
62
+
mkdir deps/srccache
63
+
cp "${dsfmt}" "./deps/srccache/dsfmt-${dsfmtVersion}.tar.gz"
64
+
cp "${rmath-julia}" "./deps/srccache/Rmath-julia-${rmathVersion}.tar.gz"
65
+
cp "${libuv}" "./deps/srccache/libuv-${libuvVersion}.tar.gz"
66
+
cp "${virtualenv}" "./deps/srccache/virtualenv-${virtualenvVersion}.tar.gz"
67
+
'';
68
+
69
+
patches = [
70
+
./0001.1-use-system-utf8proc.patch
71
+
./0002-use-system-suitesparse.patch
72
+
];
73
+
74
+
postPatch = ''
75
+
patchShebangs . contrib
76
+
'';
77
+
78
+
buildInputs = [
79
+
arpack fftw fftwSinglePrec gmp libgit2 libunwind llvm mpfr
80
+
pcre2 openblas openlibm openspecfun readline suitesparse utf8proc
81
+
zlib
82
+
];
83
+
84
+
nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ];
85
+
86
+
makeFlags =
87
+
let
88
+
arch = head (splitString "-" stdenv.system);
89
+
march = { "x86_64" = "x86-64"; "i686" = "i686"; }."${arch}"
90
+
or (throw "unsupported architecture: ${arch}");
91
+
# Julia requires Pentium 4 (SSE2) or better
92
+
cpuTarget = { "x86_64" = "x86-64"; "i686" = "pentium4"; }."${arch}"
93
+
or (throw "unsupported architecture: ${arch}");
94
+
in [
95
+
"ARCH=${arch}"
96
+
"MARCH=${march}"
97
+
"JULIA_CPU_TARGET=${cpuTarget}"
98
+
"PREFIX=$(out)"
99
+
"prefix=$(out)"
100
+
"SHELL=${stdenv.shell}"
101
+
102
+
"USE_SYSTEM_BLAS=1"
103
+
"USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
104
+
"LIBBLAS=-lopenblas"
105
+
"LIBBLASNAME=libopenblas"
106
+
107
+
"USE_SYSTEM_LAPACK=1"
108
+
"LIBLAPACK=-lopenblas"
109
+
"LIBLAPACKNAME=libopenblas"
110
+
111
+
"USE_SYSTEM_SUITESPARSE=1"
112
+
"SUITESPARSE_LIB=-lsuitesparse"
113
+
"SUITESPARSE_INC=-I${suitesparse}/include"
114
+
115
+
"USE_SYSTEM_ARPACK=1"
116
+
"USE_SYSTEM_FFTW=1"
117
+
"USE_SYSTEM_GMP=1"
118
+
"USE_SYSTEM_LIBGIT2=1"
119
+
"USE_SYSTEM_LIBUNWIND=1"
120
+
"USE_SYSTEM_LLVM=1"
121
+
"USE_SYSTEM_MPFR=1"
122
+
"USE_SYSTEM_OPENLIBM=1"
123
+
"USE_SYSTEM_OPENSPECFUN=1"
124
+
"USE_SYSTEM_PATCHELF=1"
125
+
"USE_SYSTEM_PCRE=1"
126
+
"USE_SYSTEM_READLINE=1"
127
+
"USE_SYSTEM_UTF8PROC=1"
128
+
"USE_SYSTEM_ZLIB=1"
129
+
];
130
+
131
+
NIX_CFLAGS_COMPILE = [ "-fPIC" ];
132
+
133
+
LD_LIBRARY_PATH = makeSearchPath "lib" [
134
+
arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
135
+
openspecfun pcre2 suitesparse
136
+
];
137
+
138
+
dontStrip = true;
139
+
dontPatchELF = true;
140
+
141
+
enableParallelBuilding = true;
142
+
143
+
doCheck = true;
144
+
checkTarget = "testall";
145
+
# Julia's tests require read/write access to $HOME
146
+
preCheck = ''
147
+
export HOME="$NIX_BUILD_TOP"
148
+
'';
149
+
150
+
preBuild = ''
151
+
sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
152
+
sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
153
+
'';
154
+
155
+
postInstall = ''
156
+
for prog in "$out/bin/julia" "$out/bin/julia-debug"; do
157
+
wrapProgram "$prog" \
158
+
--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH" \
159
+
--prefix PATH : "${curl}/bin"
160
+
done
161
+
'';
162
+
163
+
meta = {
164
+
description = "High-level performance-oriented dynamical language for technical computing";
165
+
homepage = "http://julialang.org/";
166
+
license = stdenv.lib.licenses.mit;
167
+
maintainers = with stdenv.lib.maintainers; [ raskin ttuegel ];
168
+
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
169
+
};
170
+
}
+6
pkgs/top-level/all-packages.nix
+6
pkgs/top-level/all-packages.nix
···
4390
4390
openblas = openblasCompat;
4391
4391
};
4392
4392
4393
+
julia-git = lowPrio (callPackage ../development/compilers/julia/git.nix {
4394
+
gmp = gmp6;
4395
+
llvm = llvm_37;
4396
+
openblas = openblasCompat;
4397
+
});
4398
+
4393
4399
kotlin = callPackage ../development/compilers/kotlin { };
4394
4400
4395
4401
lazarus = callPackage ../development/compilers/fpc/lazarus.nix {