diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2020-02-18 16:09:19 +0100 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2020-02-18 16:09:19 +0100 |
commit | 9d88ee08f6bf8a51f99872aedefd4139635f24ea (patch) | |
tree | 7c88e50c4ccf0e814a703d33e8859ec8123dd7f4 /pkgs/development/compilers | |
parent | ec1184f4616b0cf4ccf651ccac41f8ceb82dd1bb (diff) | |
parent | c2b6b6d97e1b871e1186fe7a2f0661fd369b8f34 (diff) | |
download | nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar.gz nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar.bz2 nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar.lz nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar.xz nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.tar.zst nixlib-9d88ee08f6bf8a51f99872aedefd4139635f24ea.zip |
Merge master into staging-next
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/julia/1.3.nix | 170 | ||||
-rw-r--r-- | pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch | 24 | ||||
-rw-r--r-- | pkgs/development/compilers/mint/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/mint/shards.nix | 14 | ||||
-rw-r--r-- | pkgs/development/compilers/openjdk/8.nix | 16 |
5 files changed, 216 insertions, 16 deletions
diff --git a/pkgs/development/compilers/julia/1.3.nix b/pkgs/development/compilers/julia/1.3.nix new file mode 100644 index 000000000000..5b1300ba240b --- /dev/null +++ b/pkgs/development/compilers/julia/1.3.nix @@ -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; + }; +} diff --git a/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch b/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch new file mode 100644 index 000000000000..63e0ba9ab057 --- /dev/null +++ b/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch @@ -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 + +-- diff --git a/pkgs/development/compilers/mint/default.nix b/pkgs/development/compilers/mint/default.nix index 5f72bd3649b1..78cce113e9b4 100644 --- a/pkgs/development/compilers/mint/default.nix +++ b/pkgs/development/compilers/mint/default.nix @@ -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 diff --git a/pkgs/development/compilers/mint/shards.nix b/pkgs/development/compilers/mint/shards.nix index dc6866e3af3d..b3583ac2cbaa 100644 --- a/pkgs/development/compilers/mint/shards.nix +++ b/pkgs/development/compilers/mint/shards.nix @@ -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"; diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix index 4231845792a9..f47d7939e48c 100644 --- a/pkgs/development/compilers/openjdk/8.nix +++ b/pkgs/development/compilers/openjdk/8.nix @@ -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 { |