Merge master into staging-next
This commit is contained in:
170
pkgs/development/compilers/julia/1.3.nix
Normal file
170
pkgs/development/compilers/julia/1.3.nix
Normal file
@@ -0,0 +1,170 @@
|
||||
{ stdenv, fetchurl, fetchzip, fetchFromGitHub
|
||||
# build tools
|
||||
, gfortran, m4, makeWrapper, patchelf, perl, which, python2
|
||||
, cmake
|
||||
# libjulia dependencies
|
||||
, libunwind, readline, utf8proc, zlib
|
||||
# standard library dependencies
|
||||
, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
|
||||
# linear algebra
|
||||
, openblas, arpack
|
||||
# Darwin frameworks
|
||||
, CoreServices, ApplicationServices
|
||||
}:
|
||||
|
||||
with stdenv.lib;
|
||||
|
||||
# All dependencies must use the same OpenBLAS.
|
||||
let
|
||||
arpack_ = arpack;
|
||||
in
|
||||
let
|
||||
arpack = arpack_.override { inherit openblas; };
|
||||
in
|
||||
|
||||
let
|
||||
majorVersion = "1";
|
||||
minorVersion = "3";
|
||||
maintenanceVersion = "1";
|
||||
src_sha256 = "0q9a7yc3b235psrwl5ghyxgwly25lf8n818l8h6bkf2ymdbsv5p6";
|
||||
version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "julia";
|
||||
inherit version;
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/JuliaLang/julia/releases/download/v${majorVersion}.${minorVersion}.${maintenanceVersion}/julia-${majorVersion}.${minorVersion}.${maintenanceVersion}-full.tar.gz";
|
||||
sha256 = src_sha256;
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
export PATH=$PATH:${cmake}/bin
|
||||
'';
|
||||
|
||||
patches = [
|
||||
./use-system-utf8proc-julia-1.3.patch
|
||||
|
||||
# Julia recompiles a precompiled file if the mtime stored *in* the
|
||||
# .ji file differs from the mtime of the .ji file. This
|
||||
# doesn't work in Nix because Nix changes the mtime of files in
|
||||
# the Nix store to 1. So patch Julia to accept mtimes of 1.
|
||||
./allow_nix_mtime.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs . contrib
|
||||
for i in backtrace cmdlineargs; do
|
||||
mv test/$i.jl{,.off}
|
||||
touch test/$i.jl
|
||||
done
|
||||
rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl
|
||||
rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl
|
||||
sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl
|
||||
sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
|
||||
pcre2.dev openblas openlibm openspecfun readline utf8proc
|
||||
zlib
|
||||
]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
|
||||
;
|
||||
|
||||
nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ];
|
||||
|
||||
makeFlags =
|
||||
let
|
||||
arch = head (splitString "-" stdenv.system);
|
||||
march = { x86_64 = stdenv.hostPlatform.platform.gcc.arch or "x86-64"; i686 = "pentium4"; }.${arch}
|
||||
or (throw "unsupported architecture: ${arch}");
|
||||
# Julia requires Pentium 4 (SSE2) or better
|
||||
cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; }.${arch}
|
||||
or (throw "unsupported architecture: ${arch}");
|
||||
# Julia applies a lot of patches to its dependencies, so for now do not use the system LLVM
|
||||
# https://github.com/JuliaLang/julia/tree/master/deps/patches
|
||||
in [
|
||||
"ARCH=${arch}"
|
||||
"MARCH=${march}"
|
||||
"JULIA_CPU_TARGET=${cpuTarget}"
|
||||
"PREFIX=$(out)"
|
||||
"prefix=$(out)"
|
||||
"SHELL=${stdenv.shell}"
|
||||
|
||||
"USE_SYSTEM_BLAS=1"
|
||||
"USE_BLAS64=${if openblas.blas64 then "1" else "0"}"
|
||||
"LIBBLAS=-lopenblas"
|
||||
"LIBBLASNAME=libopenblas"
|
||||
|
||||
"USE_SYSTEM_LAPACK=1"
|
||||
"LIBLAPACK=-lopenblas"
|
||||
"LIBLAPACKNAME=libopenblas"
|
||||
|
||||
"USE_SYSTEM_ARPACK=1"
|
||||
"USE_SYSTEM_FFTW=1"
|
||||
"USE_SYSTEM_GMP=1"
|
||||
"USE_SYSTEM_LIBGIT2=1"
|
||||
"USE_SYSTEM_LIBUNWIND=1"
|
||||
|
||||
"USE_SYSTEM_MPFR=1"
|
||||
"USE_SYSTEM_OPENLIBM=1"
|
||||
"USE_SYSTEM_OPENSPECFUN=1"
|
||||
"USE_SYSTEM_PATCHELF=1"
|
||||
"USE_SYSTEM_PCRE=1"
|
||||
"PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
|
||||
"PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
|
||||
"USE_SYSTEM_READLINE=1"
|
||||
"USE_SYSTEM_UTF8PROC=1"
|
||||
"USE_SYSTEM_ZLIB=1"
|
||||
|
||||
"USE_BINARYBUILDER=0"
|
||||
];
|
||||
|
||||
LD_LIBRARY_PATH = makeLibraryPath [
|
||||
arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm
|
||||
openspecfun pcre2
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = !stdenv.isDarwin;
|
||||
checkTarget = "testall";
|
||||
# Julia's tests require read/write access to $HOME
|
||||
preCheck = ''
|
||||
export HOME="$NIX_BUILD_TOP"
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
|
||||
sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
|
||||
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
|
||||
# as using a wrapper with LD_LIBRARY_PATH causes segmentation
|
||||
# faults when program returns an error:
|
||||
# $ julia -e 'throw(Error())'
|
||||
find $(echo $LD_LIBRARY_PATH | sed 's|:| |g') -maxdepth 1 -name '*.${if stdenv.isDarwin then "dylib" else "so"}*' | while read lib; do
|
||||
if [[ ! -e $out/lib/julia/$(basename $lib) ]]; then
|
||||
ln -sv $lib $out/lib/julia/$(basename $lib)
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit majorVersion minorVersion maintenanceVersion;
|
||||
site = "share/julia/site/v${majorVersion}.${minorVersion}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "High-level performance-oriented dynamical language for technical computing";
|
||||
homepage = https://julialang.org/;
|
||||
license = stdenv.lib.licenses.mit;
|
||||
maintainers = with stdenv.lib.maintainers; [ raskin rob garrison ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
|
||||
broken = stdenv.isi686;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
src/flisp/Makefile | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
|
||||
diff --git a/src/flisp/Makefile b/src/flisp/Makefile
|
||||
index d97075e..6bebca7 100644
|
||||
--- a/src/flisp/Makefile
|
||||
+++ b/src/flisp/Makefile
|
||||
@@ -32,9 +32,9 @@ OBJS := $(SRCS:%.c=$(BUILDDIR)/%.o)
|
||||
DOBJS := $(SRCS:%.c=$(BUILDDIR)/%.dbg.obj)
|
||||
LLT_release := $(LLT_BUILDDIR)/libsupport.a
|
||||
LLT_debug := $(LLT_BUILDDIR)/libsupport-debug.a
|
||||
-LIBFILES_release := $(LLT_release) $(LIBUV) $(LIBUTF8PROC)
|
||||
-LIBFILES_debug := $(LLT_debug) $(LIBUV) $(LIBUTF8PROC)
|
||||
-LIBS :=
|
||||
+LIBFILES_release := $(LLT_release) $(LIBUV)
|
||||
+LIBFILES_debug := $(LLT_debug) $(LIBUV)
|
||||
+LIBS := $(LIBUTF8PROC)
|
||||
ifneq ($(OS),WINNT)
|
||||
LIBS += -lpthread
|
||||
endif
|
||||
|
||||
--
|
||||
@@ -1,15 +1,15 @@
|
||||
{ lib, fetchFromGitHub, crystal, zlib, openssl_1_0_2, duktape, which, libyaml }:
|
||||
{ lib, fetchFromGitHub, crystal, zlib, openssl, duktape, which, libyaml }:
|
||||
crystal.buildCrystalPackage rec {
|
||||
version = "0.5.0";
|
||||
version = "0.7.1";
|
||||
pname = "mint";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mint-lang";
|
||||
repo = "mint";
|
||||
rev = version;
|
||||
sha256 = "0vxbx38c390rd2ysvbwgh89v2232sh5rbsp3nk9wzb70jybpslvl";
|
||||
sha256 = "18cg96kl4dn89bj6fm3080zzyd1r7rsfi17agdjjayd2v9fgs95l";
|
||||
};
|
||||
|
||||
buildInputs = [ openssl_1_0_2 ];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
# Update with
|
||||
# nix-shell -p crystal2nix --run crystal2nix
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
ameba = {
|
||||
owner = "veelenga";
|
||||
repo = "ameba";
|
||||
rev = "v0.9.1";
|
||||
sha256 = "05q2ki9dpg23pllalv5p27f1m287kiicp97ziz0z7vv0vg1r8smj";
|
||||
rev = "v0.10.1";
|
||||
sha256 = "0dcw7px7g0c5pxpdlirhirqzhcc7gdwdfiwb9kgm4x1k74ghjgxq";
|
||||
};
|
||||
baked_file_system = {
|
||||
owner = "schovi";
|
||||
@@ -26,8 +26,8 @@
|
||||
dotenv = {
|
||||
owner = "gdotdesign";
|
||||
repo = "cr-dotenv";
|
||||
rev = "v0.2.0";
|
||||
sha256 = "0zi2y1j2546xjhdzn7icmry0cjv82cx2cqmpgx5ml37c2pnb7kp7";
|
||||
rev = "v0.3.1";
|
||||
sha256 = "1xp7c3g8dj1hqk2b885qr4y0s8661gpp9q28lv6rhr0ckllc6zgz";
|
||||
};
|
||||
exception_page = {
|
||||
owner = "crystal-loot";
|
||||
@@ -47,6 +47,12 @@
|
||||
rev = "v0.4.0";
|
||||
sha256 = "1w9ib6j4xhwxdxx58nzc06gw7ci7vga03vgj1z1bnklamb0b0l0k";
|
||||
};
|
||||
markd = {
|
||||
owner = "icyleaf";
|
||||
repo = "markd";
|
||||
rev = "v0.2.0";
|
||||
sha256 = "0n27fndd77mlkgw1r4pf0sa8fz4gwsh7dpnjck95c0ml91cr8j1a";
|
||||
};
|
||||
radix = {
|
||||
owner = "luislavena";
|
||||
repo = "radix";
|
||||
|
||||
@@ -29,49 +29,49 @@ let
|
||||
jdk8 = fetchurl {
|
||||
name = "jdk8-${repover}.tar.gz";
|
||||
url = "${baseurl}/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "0qpmr267qcxhmw398zbl1axd161yxn4k4hfz1jlxlmdvg70p7h90"
|
||||
else "1crs4hmzmgm6fkwfq0d3xz9lph0nd33fngrqv2rz1mkkqcrjx18z";
|
||||
};
|
||||
langtools = fetchurl {
|
||||
name = "langtools-${repover}.tar.gz";
|
||||
url = "${baseurl}/langtools/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "1rhhi4kgmxvnyl3ic5p008p1n7zyji5nw99blm1lr5fw7ry7df24"
|
||||
else "1aaxd1rl7dlk4kxdivvqvripsbn0d5vny0jvjksycsm97vrfiry4";
|
||||
};
|
||||
hotspot = fetchurl {
|
||||
name = "hotspot-${repover}.tar.gz";
|
||||
url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "0lphrhjqlavd6qlkh7h4sd2bqf5gd0cchkcnvy87703fbd7gy5ii"
|
||||
else "18i4if16zikgda9k5bgqyx0p2104db23zlnclq512178z0p9yycb";
|
||||
};
|
||||
corba = fetchurl {
|
||||
name = "corba-${repover}.tar.gz";
|
||||
url = "${baseurl}/corba/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "18h0v566v420d00na6x4jrs41v4aa39byk15fi8k6dcn0dmirhvg"
|
||||
else "1298k8p2dsj7xc4h2ayk5nl4ssrcgncn06ysyqrmnwrb8gj8s1w4";
|
||||
};
|
||||
jdk = fetchurl {
|
||||
name = "jdk-${repover}.tar.gz";
|
||||
url = "${baseurl}/jdk/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "0xxy7rkj8ah263nnzkd4mg9dai5qix3l9cyilm47dig5hv7g8aq0"
|
||||
else "0vqlbks3cy3cnmnrnhbjkqinvp8bcy2h96xvx81cvlza4s2hszvz";
|
||||
};
|
||||
jaxws = fetchurl {
|
||||
name = "jaxws-${repover}.tar.gz";
|
||||
url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "0ajqm2l9g5w5ag5s4vl4ldpbm99pqa6d342hrzvv7psqn3zf6ar5"
|
||||
else "1wg9fbiz09arj0llavnzrmbhw8nx0dw8dcjkrzxw78rj1cadflzc";
|
||||
};
|
||||
jaxp = fetchurl {
|
||||
name = "jaxp-${repover}.tar.gz";
|
||||
url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "03zjh6xvza05abxz9d9j2w9xndw9n07f8lrn6dymj7f4imals831"
|
||||
else "1i5xrk8r8pcgnc68zrgp3hd1a1nzcm99swpmdnlb424qlg5nnrcf";
|
||||
};
|
||||
nashorn = fetchurl {
|
||||
name = "nashorn-${repover}.tar.gz";
|
||||
url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
|
||||
sha256 = if stdenv.isAarch64 then "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb"
|
||||
sha256 = if stdenv.isAarch64 then "0n809w264ndxksva9c81x0m1fsyg8c627w571f72xxxl9c1bnrmp"
|
||||
else "0qlxaz7sriy709vcyzz48s2v4p5h4d31my33whip018c4j5gkfqq";
|
||||
};
|
||||
openjdk8 = stdenv.mkDerivation {
|
||||
|
||||
Reference in New Issue
Block a user