diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2020-01-28 10:46:13 +0100 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2020-01-28 10:46:13 +0100 |
commit | dce0ca29d91e71e357f591b1c19ef4e1094785d6 (patch) | |
tree | 0bfdca07fce6135d13e60a99110043f0730f8e9c /pkgs/development/compilers | |
parent | 778f317820532a09cfe43287516d3be9ce62925b (diff) | |
parent | e328078fe0867c432be6f14bc200f9932617783e (diff) | |
download | nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar.gz nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar.bz2 nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar.lz nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar.xz nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.tar.zst nixlib-dce0ca29d91e71e357f591b1c19ef4e1094785d6.zip |
Merge master into staging-next
Diffstat (limited to 'pkgs/development/compilers')
20 files changed, 399 insertions, 211 deletions
diff --git a/pkgs/development/compilers/bs-platform/build-bs-platform.nix b/pkgs/development/compilers/bs-platform/build-bs-platform.nix index 03e01a7a0da5..830a0b647c42 100644 --- a/pkgs/development/compilers/bs-platform/build-bs-platform.nix +++ b/pkgs/development/compilers/bs-platform/build-bs-platform.nix @@ -35,11 +35,12 @@ stdenv.mkDerivation { ''; buildPhase = '' - node scripts/ninja.js build + # This is an unfortunate name, but it's actually how to build a release + # binary for BuckleScript + node scripts/install.js ''; installPhase = '' - node scripts/install.js mkdir -p $out/bin cp -rf jscomp lib vendor odoc_gen native $out cp bsconfig.json package.json $out diff --git a/pkgs/development/compilers/dotnet/buildDotnet.nix b/pkgs/development/compilers/dotnet/buildDotnet.nix new file mode 100644 index 000000000000..58e67ff008ae --- /dev/null +++ b/pkgs/development/compilers/dotnet/buildDotnet.nix @@ -0,0 +1,67 @@ +{ type +, version +, sha512 +}: +assert builtins.elem type [ "aspnetcore" "netcore" "sdk"]; +{ stdenv +, fetchurl +, libunwind +, openssl +, icu +, libuuid +, zlib +, curl +}: +let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk"; + urls = { + aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz"; + netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-linux-x64.tar.gz"; + sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz"; + }; + descriptions = { + aspnetcore = "ASP .NET Core runtime ${version}"; + netcore = ".NET Core runtime ${version}"; + sdk = ".NET SDK ${version}"; + }; +in stdenv.mkDerivation rec { + inherit pname version; + + rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ]; + + src = fetchurl { + url = builtins.getAttr type urls; + inherit sha512; + }; + + sourceRoot = "."; + + dontPatchELF = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp -r ./ $out + ln -s $out/dotnet $out/bin/dotnet + runHook postInstall + ''; + + postFixup = '' + patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet + patchelf --set-rpath "${rpath}" $out/dotnet + find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \; + find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \; + ''; + + doInstallCheck = true; + installCheckPhase = '' + $out/bin/dotnet --info + ''; + + meta = with stdenv.lib; { + homepage = https://dotnet.github.io/; + description = builtins.getAttr type descriptions; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ kuznero ]; + license = licenses.mit; + }; +} diff --git a/pkgs/development/compilers/dotnet/combinePackages.nix b/pkgs/development/compilers/dotnet/combinePackages.nix new file mode 100644 index 000000000000..00fb7c6d9b41 --- /dev/null +++ b/pkgs/development/compilers/dotnet/combinePackages.nix @@ -0,0 +1,20 @@ +packages: +{ buildEnv, lib }: +let cli = builtins.head packages; +in +assert lib.assertMsg ((builtins.length packages) != 0) + ''You must include at least one package, e.g + `with dotnetCorePackages; combinePackages { + packages = [ sdk_3_0 aspnetcore_2_1 ]; + };`'' ; + buildEnv { + name = "dotnet-core-combined"; + paths = packages; + pathsToLink = [ "/host" "/packs" "/sdk" "/shared" "/templates" ]; + ignoreCollisions = true; + postBuild = '' + cp ${cli}/dotnet $out/dotnet + mkdir $out/bin + ln -s $out/dotnet $out/bin/ + ''; + } diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix new file mode 100644 index 000000000000..58d49a505156 --- /dev/null +++ b/pkgs/development/compilers/dotnet/default.nix @@ -0,0 +1,68 @@ +/* +How to combine packages for use in development: +dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_3_0 sdk aspnetcore_2_1 ]; +*/ +{ callPackage }: +let + buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {}; + buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; } ); + buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; } ); + buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; } ); +in rec { + combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {}; + + # v2.1.15 (LTS) + + aspnetcore_2_1 = buildAspNetCore { + version = "2.1.15"; + sha512 = "a557f175cca92bb1dd66cf638ff84fe85750fab67028bd4472748b22ef0591f5f3812446a3dbe21c3d1be28c47d459d854d690dbace1b95bc7136b248af87334"; + }; + + netcore_2_1 = buildNetCore { + version = "2.1.15"; + sha512 = "cfd7f7caea7e896dd4d68a05c827c86f38595f24e854edb3f934715ee1268e2623f17ff768215e465fe596cd474497384be2b1381f04ddd6d555665a341f65f6"; + }; + + sdk_2_1 = buildNetCoreSdk { + version = "2.1.803"; + sha512 = "57d48d6ca1bd92ac348dc05220d984811c0cf005774d7afdfbbf125a842acb0a26572146ed25a7eb26f4e0404fe840b70d1e7ec1fb7c9a5c6cfe81fefc41b363"; + }; + + # v2.2 + + sdk_2_2 = throw "Dotnet SDK 2.2 is EOL, please use 3.1"; + + # v3.0.2 (Maintenance) + + aspnetcore_3_0 = buildAspNetCore { + version = "3.0.2"; + sha512 = "84dcc2a2a9e43afbc166771153d85b19cb09f964c85c787d77b362fd1d9e076345ae153305fa9040999846a56b69041eb89282804587478b926179d2613d259d"; + }; + + netcore_3_0 = buildNetCore { + version = "3.0.2"; + sha512 = "c8f0e4eb220fa896c4a803a8d9d0c704ae7b8383801a977036f3089b1d779159f5a2d9293dc11ff5f4f6c76febc6f70f6cfcdff0debd3243cad5eb635f853d45"; + }; + + sdk_3_0 = buildNetCoreSdk { + version = "3.0.102"; + sha512 = "77bc287d9c20630976ac4c0736192ba4899154c9e7cc5b87bc9d94d5d8abafdd832cfe8f385b6ba584c702d9261566109df15ab46b0d62bd218d950d3b47893e"; + }; + + # v3.1.1 (LTS) + + aspnetcore_3_1 = buildAspNetCore { + version = "3.1.1"; + sha512 = "cc27828cacbc783ef83cc1378078e14ac558aec30726b36c4f154fad0d08ff011e7e1dfc17bc851926ea3b0da9c7d71496af14ee13184bdf503856eca30a89ae"; + }; + + netcore_3_1 = buildNetCore { + version = "3.1.1"; + sha512 = "991a89ac7b52d3bf6c00359ce94c5a3f7488cd3d9e4663ba0575e1a5d8214c5fcc459e2cb923c369c2cdb789a96f0b1dfb5c5aae1a04df6e7f1f365122072611"; + }; + + sdk_3_1 = buildNetCoreSdk { + version = "3.1.101"; + sha512 = "eeee75323be762c329176d5856ec2ecfd16f06607965614df006730ed648a5b5d12ac7fd1942fe37cfc97e3013e796ef278e7c7bc4f32b8680585c4884a8a6a1"; + }; +} diff --git a/pkgs/development/compilers/dotnet/sdk/default.nix b/pkgs/development/compilers/dotnet/sdk/default.nix deleted file mode 100644 index 984ab39c91ad..000000000000 --- a/pkgs/development/compilers/dotnet/sdk/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ stdenv -, fetchurl -, libunwind -, openssl -, icu -, libuuid -, zlib -, curl -}: - -let - rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ]; -in - stdenv.mkDerivation rec { - version = "2.2.401"; - netCoreVersion = "2.2.6"; - pname = "dotnet-sdk"; - - src = fetchurl { - url = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-linux-x64.tar.gz"; - # use sha512 from the download page - sha512 = "05w3zk7bcd8sv3k4kplf20j906and2006g1fggq7y6kaxrlhdnpd6jhy6idm8v5bz48wfxga5b4yys9qx0fp3p8yl7wi67qljpzrq88"; - }; - - sourceRoot = "."; - - buildPhase = '' - runHook preBuild - patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" ./dotnet - patchelf --set-rpath "${rpath}" ./dotnet - find -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \; - echo -n "dotnet-sdk version: " - ./dotnet --version - runHook postBuild - ''; - - dontPatchELF = true; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - cp -r ./ $out - ln -s $out/dotnet $out/bin/dotnet - runHook postInstall - ''; - - meta = with stdenv.lib; { - homepage = https://dotnet.github.io/; - description = ".NET Core SDK ${version} with .NET Core ${netCoreVersion}"; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ kuznero ]; - license = licenses.mit; - }; - } diff --git a/pkgs/development/compilers/gavrasm/default.nix b/pkgs/development/compilers/gavrasm/default.nix new file mode 100644 index 000000000000..92781d79cc7f --- /dev/null +++ b/pkgs/development/compilers/gavrasm/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchzip, fpc , lang ? "en" } : +assert stdenv.lib.assertOneOf "lang" lang ["cn" "de" "en" "fr" "tr"]; +stdenv.mkDerivation rec { + pname = "gavrasm"; + version = "4.5"; + + src = fetchzip { + url ="http://www.avr-asm-tutorial.net/gavrasm/v45/gavrasm_sources_lin_45.zip"; + sha256 = "1f5g5ran74pznwj4g7vfqh2qhymaj3p26f2lvzbmlwq447iid52c"; + stripRoot=false; + }; + + nativeBuildInputs = [ fpc ]; + + configurePhase = '' + cp gavrlang_${lang}.pas gavrlang.pas + ''; + + buildPhase = '' + fpc gavrasm.pas + ''; + + installPhase = '' + mkdir -p $out/bin + cp gavrasm $out/bin + mkdir -p $out/doc + cp instr.asm $out/doc + cp ReadMe.Txt $out/doc + cp LiesMich.Txt $out/doc + ''; + + meta = with stdenv.lib; { + homepage = http://www.avr-asm-tutorial.net/gavrasm; + description = "AVR Assembler for ATMEL AVR-Processors"; + license = licenses.unfree; + maintainers = with maintainers; [ mafo ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/compilers/ghc/8.8.2.nix b/pkgs/development/compilers/ghc/8.8.2.nix index 4ed99a8402aa..b0eef9ef924d 100644 --- a/pkgs/development/compilers/ghc/8.8.2.nix +++ b/pkgs/development/compilers/ghc/8.8.2.nix @@ -86,12 +86,12 @@ let in stdenv.mkDerivation (rec { - version = "8.8.1.20191211"; + version = "8.8.2"; name = "${targetPrefix}ghc-${version}"; src = fetchurl { - url = "https://downloads.haskell.org/ghc/8.8.2-rc1/ghc-${version}-src.tar.xz"; - sha256 = "1gl4fzakjbhd94v1saxmr9sfzgk22m1b95jq51rxm93b2g4cixl4"; + url = "https://downloads.haskell.org/ghc/8.8.2/ghc-${version}-src.tar.xz"; + sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1"; }; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/graalvm/enterprise-edition.nix b/pkgs/development/compilers/graalvm/enterprise-edition.nix index e180455cb7cd..c34c4695a236 100644 --- a/pkgs/development/compilers/graalvm/enterprise-edition.nix +++ b/pkgs/development/compilers/graalvm/enterprise-edition.nix @@ -1,133 +1,167 @@ -{ stdenv, requireFile, perl, unzip, glibc, zlib, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsaLib, libav_0_8, setJavaClassPath }: +{ stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsaLib, libav_0_8, setJavaClassPath }: let - graalvm8-ee = stdenv.mkDerivation rec { - pname = "graalvm8-ee"; - version = "19.2.0"; - srcs = [ - (requireFile { - name = "graalvm-ee-linux-amd64-${version}.tar.gz"; - sha256 = "1j56lyids48zyjhxk8xl4niy8hk6qzi1aj7c55yfh62id8v6cpbw"; - url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; - }) - (requireFile { - name = "native-image-installable-svm-svmee-linux-amd64-${version}.jar"; - sha256 = "07c25l27msxccqrbz4bknz0sxsl0z2k8990cdfkbrgxvhxspfnnm"; - url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; - }) - (requireFile { - name = "python-installable-svm-svmee-linux-amd64-${version}.jar"; - sha256 = "1c7kpz56w9p418li97ymixdwywscr85vhn7jkzxq71bj7ia7pxwz"; - url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; - }) - (requireFile { - name = "ruby-installable-svm-svmee-linux-amd64-${version}.jar"; - sha256 = "13jfm5qpxqxz7f5n9yyvqrv1vwigifrjwk3hssp23maski2ssys1"; - url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; - }) - ]; - nativeBuildInputs = [ unzip perl ]; - unpackPhase = '' - unpack_jar() { - jar=$1 - unzip $jar -d $out - perl -ne 'use File::Path qw(make_path); - use File::Basename qw(dirname); - if (/^(.+) = (.+)$/) { - make_path dirname("$ENV{out}/$1"); - system "ln -s $2 $ENV{out}/$1"; - }' $out/META-INF/symlinks - perl -ne 'if (/^(.+) = ([r-])([w-])([x-])([r-])([w-])([x-])([r-])([w-])([x-])$/) { - my $mode = ($2 eq 'r' ? 0400 : 0) + ($3 eq 'w' ? 0200 : 0) + ($4 eq 'x' ? 0100 : 0) + - ($5 eq 'r' ? 0040 : 0) + ($6 eq 'w' ? 0020 : 0) + ($7 eq 'x' ? 0010 : 0) + - ($8 eq 'r' ? 0004 : 0) + ($9 eq 'w' ? 0002 : 0) + ($10 eq 'x' ? 0001 : 0); - chmod $mode, "$ENV{out}/$1"; - }' $out/META-INF/permissions - rm -rf $out/META-INF - } - - mkdir -p $out - arr=($srcs) - tar xf ''${arr[0]} -C $out --strip-components=1 - unpack_jar ''${arr[1]} - unpack_jar ''${arr[2]} - unpack_jar ''${arr[3]} - ''; - - installPhase = '' - # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html - substituteInPlace $out/jre/lib/security/java.security \ - --replace file:/dev/random file:/dev/./urandom \ - --replace NativePRNGBlocking SHA1PRNG - - # provide libraries needed for static compilation - for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do - ln -s $f $out/jre/lib/svm/clibraries/linux-amd64/$(basename $f) - done - ''; - - dontStrip = true; - - preFixup = '' - # Set JAVA_HOME automatically. - mkdir -p $out/nix-support - cat <<EOF > $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi - EOF - ''; - - postFixup = '' - rpath="$out/jre/lib/amd64/jli:$out/jre/lib/amd64/server:$out/jre/lib/amd64:${ - stdenv.lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender - glib zlib alsaLib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}" - - for f in $(find $out -type f -perm -0100); do - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true - patchelf --set-rpath "$rpath" "$f" || true - done - - for f in $(find $out -type f -perm -0100); do - if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi - done - ''; - - propagatedBuildInputs = [ setJavaClassPath zlib ]; # $out/bin/native-image needs zlib to build native executables - - doInstallCheck = true; - installCheckPhase = '' - echo ${stdenv.lib.escapeShellArg '' - public class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello World"); - } - } - ''} > HelloWorld.java - $out/bin/javac HelloWorld.java - - # run on JVM with Graal Compiler - $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld - $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' - - # Ahead-Of-Time compilation - $out/bin/native-image --no-server HelloWorld - ./helloworld - ./helloworld | fgrep 'Hello World' - - # Ahead-Of-Time compilation with --static - $out/bin/native-image --no-server --static HelloWorld - ./helloworld - ./helloworld | fgrep 'Hello World' - ''; - - passthru.home = graalvm8-ee; - - meta = with stdenv.lib; { - homepage = https://www.graalvm.org/; - description = "High-Performance Polyglot VM"; - license = licenses.unfree; - maintainers = with maintainers; [ volth hlolli ]; - platforms = [ "x86_64-linux" ]; - }; - }; -in - graalvm8-ee + common = javaVersion: + let + graalvmXXX-ee = stdenv.mkDerivation rec { + pname = "graalvm${javaVersion}-ee"; + version = "19.3.1"; + srcs = [ + (requireFile { + name = "graalvm-ee-java${javaVersion}-linux-amd64-${version}.tar.gz"; + sha256 = { "8" = "b4833f1996e0e271d8abde1d0af3420e2bc6797624515a3720bdbedfa99b1e82"; + "11" = "a965abb093934712f31cd2183f3f0d68ed1410a50365489f665a30e5382908dc"; + }.${javaVersion}; + url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; + }) + (requireFile { + name = "native-image-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar"; + sha256 = { "8" = "fe3447dd60fbe3da39c650654594796873cd6bc9995d1430a421363e71d41702"; + "11" = "53357b7facb36c7b38857a2369471d0e869c0ff45555aa8baf2ab84de0c4782c"; + }.${javaVersion}; + url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; + }) + (requireFile { + name = "python-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar"; + sha256 = { "8" = "003e9574e18656a82626aa5d310fac31979abc04955587d68ff977808829a91d"; + "11" = "65558e14a25802001f3c79571a09170fa11564de34df6987724163416d3889bf"; + }.${javaVersion}; + url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; + }) + (requireFile { + name = "ruby-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar"; + sha256 = { "8" = "45abe74d10e09680f1e40101f93def5615e65f29ced328054a40c8517e054290"; + "11" = "3d4de372b78b68dbd966b36489d1c6d84a326990e91a0314fb77404eed0741ad"; + }.${javaVersion}; + url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; + }) + ]; + nativeBuildInputs = [ unzip perl ]; + unpackPhase = '' + unpack_jar() { + jar=$1 + unzip $jar -d $out + perl -ne 'use File::Path qw(make_path); + use File::Basename qw(dirname); + if (/^(.+) = (.+)$/) { + make_path dirname("$ENV{out}/$1"); + system "ln -s $2 $ENV{out}/$1"; + }' $out/META-INF/symlinks + perl -ne 'if (/^(.+) = ([r-])([w-])([x-])([r-])([w-])([x-])([r-])([w-])([x-])$/) { + my $mode = ($2 eq 'r' ? 0400 : 0) + ($3 eq 'w' ? 0200 : 0) + ($4 eq 'x' ? 0100 : 0) + + ($5 eq 'r' ? 0040 : 0) + ($6 eq 'w' ? 0020 : 0) + ($7 eq 'x' ? 0010 : 0) + + ($8 eq 'r' ? 0004 : 0) + ($9 eq 'w' ? 0002 : 0) + ($10 eq 'x' ? 0001 : 0); + chmod $mode, "$ENV{out}/$1"; + }' $out/META-INF/permissions + rm -rf $out/META-INF + } + + mkdir -p $out + arr=($srcs) + tar xf ''${arr[0]} -C $out --strip-components=1 + unpack_jar ''${arr[1]} + unpack_jar ''${arr[2]} + unpack_jar ''${arr[3]} + ''; + + installPhase = { + "8" = '' + # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html + substituteInPlace $out/jre/lib/security/java.security \ + --replace file:/dev/random file:/dev/./urandom \ + --replace NativePRNGBlocking SHA1PRNG + + # provide libraries needed for static compilation + for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do + ln -s $f $out/jre/lib/svm/clibraries/linux-amd64/$(basename $f) + done + + # allow using external truffle-api.jar and languages not included in the distrubution + rm $out/jre/lib/jvmci/parentClassLoader.classpath + ''; + "11" = '' + # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html + substituteInPlace $out/conf/security/java.security \ + --replace file:/dev/random file:/dev/./urandom \ + --replace NativePRNGBlocking SHA1PRNG + + # provide libraries needed for static compilation + for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do + ln -s $f $out/lib/svm/clibraries/linux-amd64/$(basename $f) + done + ''; + }.${javaVersion}; + + dontStrip = true; + + # copy-paste openjdk's preFixup + preFixup = '' + # Set JAVA_HOME automatically. + mkdir -p $out/nix-support + cat <<EOF > $out/nix-support/setup-hook + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + ''; + + postFixup = '' + rpath="${ { "8" = "$out/jre/lib/amd64/jli:$out/jre/lib/amd64/server:$out/jre/lib/amd64"; + "11" = "$out/lib/jli:$out/lib/server:$out/lib"; + }.${javaVersion} + }:${ + stdenv.lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender + glib zlib bzip2 alsaLib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}" + + for f in $(find $out -type f -perm -0100); do + patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true + patchelf --set-rpath "$rpath" "$f" || true + done + + for f in $(find $out -type f -perm -0100); do + if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi + done + ''; + + propagatedBuildInputs = [ setJavaClassPath zlib ]; # $out/bin/native-image needs zlib to build native executables + + doInstallCheck = true; + installCheckPhase = '' + echo ${stdenv.lib.escapeShellArg '' + public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World"); + } + } + ''} > HelloWorld.java + $out/bin/javac HelloWorld.java + + # run on JVM with Graal Compiler + $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld + $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' + + # Ahead-Of-Time compilation + $out/bin/native-image --no-server HelloWorld + ./helloworld + ./helloworld | fgrep 'Hello World' + + # Ahead-Of-Time compilation with --static + $out/bin/native-image --no-server --static HelloWorld + ./helloworld + ./helloworld | fgrep 'Hello World' + ''; + + passthru.home = graalvmXXX-ee; + + meta = with stdenv.lib; { + homepage = https://www.graalvm.org/; + description = "High-Performance Polyglot VM"; + license = licenses.unfree; + maintainers = with maintainers; [ volth hlolli ]; + platforms = [ "x86_64-linux" ]; + }; + }; + in + graalvmXXX-ee; +in { + graalvm8-ee = common "8"; + graalvm11-ee = common "11"; +} diff --git a/pkgs/development/compilers/iasl/default.nix b/pkgs/development/compilers/iasl/default.nix index e98d7cc27dbf..1e7a46e78072 100644 --- a/pkgs/development/compilers/iasl/default.nix +++ b/pkgs/development/compilers/iasl/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "iasl"; - version = "20191213"; + version = "20200110"; src = fetchurl { url = "https://acpica.org/sites/acpica/files/acpica-unix-${version}.tar.gz"; - sha256 = "1ip684is3dplf7snkn024vv6bg3dv5msx8v7pz6x9lrnk3gk0j9h"; + sha256 = "1cb6aa6acrixmdzvj9vv4qs9lmlsbkd27pjlz14i1kq1x3xn0gwx"; }; NIX_CFLAGS_COMPILE = "-O3"; diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix index 276b9ae150a0..54d95fbd8a88 100644 --- a/pkgs/development/compilers/jetbrains-jdk/default.nix +++ b/pkgs/development/compilers/jetbrains-jdk/default.nix @@ -7,17 +7,17 @@ let drv = stdenv.mkDerivation rec { pname = "jetbrainsjdk"; - version = "485.1"; + version = "520.30"; src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { - url = "https://bintray.com/jetbrains/intellij-jbr/download_file?file_path=jbrsdk-11_0_4-linux-x64-b${version}.tar.gz"; - sha256 = "18jnn0dra9nsnyllwq0ljxzr58k2pg8d0kg10y39vnxwccic4f76"; + url = "https://bintray.com/jetbrains/intellij-jbr/download_file?file_path=jbrsdk-11_0_5-linux-x64-b${version}.tar.gz"; + sha256 = "0xmr5jjnr4af7byz5w01phyrrdyizfhqmwhs4k8ih566fkhyzj02"; } else if stdenv.hostPlatform.system == "x86_64-darwin" then fetchurl { - url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbrsdk-11_0_2-osx-x64-b${version}.tar.gz"; - sha256 = "1ly6kf59knvzbr2pjkc9fqyzfs28pdvnqg5pfffr8zp14xm44zmd"; + url = "https://bintray.com/jetbrains/intellij-jbr/download_file?file_path=jbrsdk-11_0_5-osx-x64-b${version}.tar.gz"; + sha256 = "0wfcw66wv5rkkjzyzi9j7zk7c2fgi33ny09drgihxi2kdzyfrpcb"; } else throw "unsupported system: ${stdenv.hostPlatform.system}"; diff --git a/pkgs/development/compilers/ocaml/4.10.nix b/pkgs/development/compilers/ocaml/4.10.nix new file mode 100644 index 000000000000..6f78ae05e02e --- /dev/null +++ b/pkgs/development/compilers/ocaml/4.10.nix @@ -0,0 +1,6 @@ +import ./generic.nix { + major_version = "4"; + minor_version = "10"; + patch_version = "0+beta1"; + sha256 = "18jrgww98v1famb2x5jhbsnm4ngph2rvq0z4cxpqxfn06yb53jyf"; +} diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index b8381feef095..2081d3396707 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -10,7 +10,7 @@ let major = "11"; - update = ".0.4"; + update = ".0.6"; build = "ga"; openjdk = stdenv.mkDerivation rec { @@ -19,7 +19,7 @@ let src = fetchurl { url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz"; - sha256 = "1v6pam38iidlhz46046h17hf5kki6n3kl302awjcyxzk7bmkvb8x"; + sha256 = "1w6n0cnz9izpjb3sc870q7a0jz85a6c7fiszymxin10cnsajkzir"; }; nativeBuildInputs = [ pkgconfig autoconf ]; diff --git a/pkgs/development/compilers/purescript/psc-package/default.nix b/pkgs/development/compilers/purescript/psc-package/default.nix index 68b676d5a3ef..c2f8765a131c 100644 --- a/pkgs/development/compilers/purescript/psc-package/default.nix +++ b/pkgs/development/compilers/purescript/psc-package/default.nix @@ -4,13 +4,13 @@ with lib; mkDerivation rec { pname = "psc-package"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "purescript"; repo = pname; rev = "v${version}"; - sha256 = "1zadbph1vha3b5hvmjvs138dcwbab49f3v63air1l6r4cvpb6831"; + sha256 = "165yax131rj1mdlqd28g6wcy1ps3k4w50z8gj9yc3nfs09dy0lab"; }; isLibrary = false; diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix index f1126fdeddfd..d1797a448ad1 100644 --- a/pkgs/development/compilers/purescript/purescript/default.nix +++ b/pkgs/development/compilers/purescript/purescript/default.nix @@ -18,19 +18,19 @@ let in stdenv.mkDerivation rec { pname = "purescript"; - version = "0.13.5"; + version = "0.13.6"; src = if stdenv.isDarwin then fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/macos.tar.gz"; - sha256 = "19bb50m0cd738r353blgy21d842b3yj58xfbplk7bz59jawj9lym"; + sha256 = "04kwjjrriyizpvhs96jgyx21ppyd1ynblk24i5825ywxlw9hja25"; } else fetchurl { url = "https://github.com/${pname}/${pname}/releases/download/v${version}/linux64.tar.gz"; - sha256 = "016wvwypgb4859f0n1lqsqv9a8cca2y8g7d6ffvzx6rncd115gxi"; + sha256 = "012znrj32aq96qh1g2hscdvhl3flgihhimiz40agk0dykpksblns"; }; @@ -59,7 +59,7 @@ in stdenv.mkDerivation rec { description = "A strongly-typed functional programming language that compiles to JavaScript"; homepage = http://www.purescript.org/; license = licenses.bsd3; - maintainers = [ maintainers.justinwoo ]; + maintainers = [ maintainers.justinwoo maintainers.mbbx6spp ]; platforms = [ "x86_64-linux" "x86_64-darwin" ]; }; } diff --git a/pkgs/development/compilers/scala/2.11.nix b/pkgs/development/compilers/scala/2.11.nix index a1f803b67193..db1a8f4edcad 100644 --- a/pkgs/development/compilers/scala/2.11.nix +++ b/pkgs/development/compilers/scala/2.11.nix @@ -16,6 +16,11 @@ stdenv.mkDerivation rec { rm "bin/"*.bat mv * $out + # put docs in correct subdirectory + mkdir -p $out/share/doc + mv $out/doc $out/share/doc/${name} + mv $out/man $out/share/man + for p in $(ls $out/bin/) ; do wrapProgram $out/bin/$p \ --prefix PATH ":" ${coreutils}/bin \ diff --git a/pkgs/development/compilers/scala/2.12.nix b/pkgs/development/compilers/scala/2.12.nix index 9e11daced4a9..3f61669b938d 100644 --- a/pkgs/development/compilers/scala/2.12.nix +++ b/pkgs/development/compilers/scala/2.12.nix @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { # put docs in correct subdirectory mkdir -p $out/share/doc mv $out/doc $out/share/doc/scala + mv $out/{LICENSE,NOTICE} $out/share/doc/scala for p in $(ls $out/bin/) ; do wrapProgram $out/bin/$p \ diff --git a/pkgs/development/compilers/scala/2.13.nix b/pkgs/development/compilers/scala/2.13.nix index 6bba11af9d46..b140d4e2a2db 100644 --- a/pkgs/development/compilers/scala/2.13.nix +++ b/pkgs/development/compilers/scala/2.13.nix @@ -19,6 +19,7 @@ stdenv.mkDerivation rec { # put docs in correct subdirectory mkdir -p $out/share/doc mv $out/doc $out/share/doc/scala + mv $out/{LICENSE,NOTICE} $out/share/doc/scala for p in $(ls $out/bin/) ; do wrapProgram $out/bin/$p \ diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix index 35ee7de7a2dc..00d1a2f79600 100644 --- a/pkgs/development/compilers/souffle/default.nix +++ b/pkgs/development/compilers/souffle/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A translator of declarative Datalog programs into the C++ language"; - homepage = "http://souffle-lang.github.io/"; + homepage = "https://souffle-lang.github.io/"; platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice copumpkin wchresta ]; license = licenses.upl; diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix index 015c955000c2..1c7363a83bb9 100644 --- a/pkgs/development/compilers/tinygo/default.nix +++ b/pkgs/development/compilers/tinygo/default.nix @@ -3,13 +3,13 @@ buildGoModule rec { pname = "tinygo"; - version = "0.10.0"; + version = "0.11.0"; src = fetchFromGitHub { owner = "tinygo-org"; repo = "tinygo"; rev = "v${version}"; - sha256 = "03di8500dqk25giiajglcdf2gbc0jidsn8qsw2sxmkmnd1np7gyd"; + sha256 = "0cmg8x9hpvzlxp6hiy9hkh9nn7ig7b0x6k8a2c3bw19pfx9lxksf"; }; modSha256 = "0r3lfi1bj550sf3b7ysz62c2c33f8zfli8208xixj3jadycb6r3z"; diff --git a/pkgs/development/compilers/unison/default.nix b/pkgs/development/compilers/unison/default.nix index 2a8c07fa0fe0..c24786cd9a04 100644 --- a/pkgs/development/compilers/unison/default.nix +++ b/pkgs/development/compilers/unison/default.nix @@ -4,18 +4,18 @@ stdenv.mkDerivation rec { pname = "unison-code-manager"; - milestone_id = "M1g"; + milestone_id = "M1h"; version = "1.0.${milestone_id}-alpha"; src = if (stdenv.isDarwin) then fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/unison-osx.tar.gz"; - sha256 = "186y7y7ffg976w01cbb8am84ajbifb7lcnsc4g3x262mkswr7lry"; + sha256 = "0iivm5gmbk0fq0zr3lvck6p1c2i7i54l3rf70z677529w9irzchp"; } else fetchurl { url = "https://github.com/unisonweb/unison/releases/download/release/${milestone_id}/unison-linux64.tar.gz"; - sha256 = "1ki9car1clpaspnl5jb5qnr6nzv108q279n8m8bjm8azfcnl61ab"; + sha256 = "0fb84c1yn8pidflh7kq696j3v4blkvbk1fsqp36h30p7vv676yci"; }; # The tarball is just the prebuilt binary, in the archive root. |