graalvm-ce: 21.2.0 -> 21.3.0
- Drop graalvm8 since it was removed by upstream - Add update.sh script to make it easier to generate hashes for all platforms - Fix GraalPython, broken since #141825 (sorry) - Small refactorings and fixes
This commit is contained in:
committed by
Profpatsch
parent
f00a3308d1
commit
8abb6e72c9
@@ -1,21 +1,18 @@
|
||||
{ callPackage, Foundation }:
|
||||
{ lib, callPackage, Foundation }:
|
||||
|
||||
let
|
||||
mkGraal = opts: callPackage (import ./repository.nix opts) {
|
||||
mkGraal = opts: callPackage (import ./mkGraal.nix opts) {
|
||||
inherit Foundation;
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherit mkGraal;
|
||||
|
||||
graalvm8-ce = mkGraal rec {
|
||||
version = "21.2.0";
|
||||
javaVersion = "8";
|
||||
platforms = ["x86_64-linux"];
|
||||
graalvm11-ce = mkGraal rec {
|
||||
version = lib.fileContents ./version;
|
||||
javaVersion = "11";
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
|
||||
};
|
||||
|
||||
graalvm11-ce = mkGraal rec {
|
||||
version = "21.2.0";
|
||||
javaVersion = "11";
|
||||
platforms = ["x86_64-linux" "aarch64-linux" "x86_64-darwin"];
|
||||
};
|
||||
# TODO: added graalvm17-ce
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# Generated by ./update.sh script
|
||||
{ javaVersionPlatform, ... }:
|
||||
[
|
||||
{
|
||||
sha256 = {
|
||||
"11-linux-aarch64" = "0hsjxp6ly7jsn9k94fddcl7afc5gda66jyppcnfvslishbizqd0i";
|
||||
"11-linux-amd64" = "1ylk5l933z813k0k1xlayiv8fa0f1gmpr66bma51532iy3mch6rs";
|
||||
"11-darwin-amd64" = "0qpqnnmqxvxzj3mwz05acpg4n8ffqsz0sji8lbl03fgswpvgfavc";
|
||||
}.${javaVersionPlatform} or null;
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java${javaVersionPlatform}-21.3.0.tar.gz";
|
||||
}
|
||||
{
|
||||
sha256 = {
|
||||
"11-linux-aarch64" = "0qlmg5fwvqsb5ab3irj2hrcd5jc94mibnlz1gvzpnq85rw1zcb6h";
|
||||
"11-linux-amd64" = "0kvnjr55rizy53vn0ff9w27z1qh9d1vp3s7r1kdl0wyhrbhd8n49";
|
||||
"11-darwin-amd64" = "1mg8c8hh8wmbwsisgarmp35jd0dall1fwdv49mggp74hicbc32h3";
|
||||
}.${javaVersionPlatform} or null;
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/native-image-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
|
||||
}
|
||||
{
|
||||
sha256 = {
|
||||
"11-linux-aarch64" = "02rvwl1nng8d3qn226rjx5yq2blxs4yz009ab928qanhmb4vhv8b";
|
||||
"11-linux-amd64" = "0zz62zr7imjaw9a3j5m66xs7c72cqb1i74ab3rnlh0dgs1mdpljg";
|
||||
"11-darwin-amd64" = "1wiv0299b2xrc229alczmjfj1bsn90p0wdm64rr39xnyyhbqrr80";
|
||||
}.${javaVersionPlatform} or null;
|
||||
url = "https://github.com/oracle/truffleruby/releases/download/vm-21.3.0/ruby-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
|
||||
}
|
||||
{
|
||||
sha256 = {
|
||||
"11-linux-aarch64" = "1ck4c1z98h1zn4i6xhh1hb6w2jab6n17ddykb72xxw4vig9nhlc7";
|
||||
"11-linux-amd64" = "0gy8jj9d9msmj0i44sysiwq3j2k2w2g47fhq6y1aq47n3kmwj9kv";
|
||||
"11-darwin-amd64" = "0agw6k3jn2jh8wyc9h8rvzlgs96qh4nlj0y8nyzsmidvwq2ahl00";
|
||||
}.${javaVersionPlatform} or null;
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/wasm-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
|
||||
}
|
||||
{
|
||||
sha256 = {
|
||||
"11-linux-amd64" = "1l5av2v459q88zfl83877h7b3426z3d86kp6wqjvz2441brvidi0";
|
||||
"11-darwin-amd64" = "06694n74dzsfwlli1sjdsrfbj9ngw7bhrcayvy4sgy2va5qpdjs0";
|
||||
}.${javaVersionPlatform} or null;
|
||||
url = "https://github.com/graalvm/graalpython/releases/download/vm-21.3.0/python-installable-svm-java${javaVersionPlatform}-21.3.0.jar";
|
||||
}
|
||||
]
|
||||
+37
-73
@@ -24,55 +24,20 @@ let
|
||||
javaVersionPlatform = "${javaVersion}-${platform}";
|
||||
|
||||
graalvmXXX-ce = stdenv.mkDerivation rec {
|
||||
inherit version;
|
||||
name = "graalvm${javaVersion}-ce";
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
sha256 = {
|
||||
"8-linux-amd64" = "01gyxjmfp7wpcyn7x8b184fn0lp3xryfw619bqch120pzvr6z88f";
|
||||
"11-linux-aarch64" = "sha256-u9841eaHH347JHCrm5u3YGZ9RSTuKiDq368TY2otAYw=";
|
||||
"11-linux-amd64" = "0w7lhvxm4nggqdcl4xrhdd3y6dqw9jhyca9adjkp508n4lqf1lxv";
|
||||
"11-darwin-amd64" = "0dnahicdl0vhrbiml9z9nbb7k75hbsjj8rs246i1lwril12dqb7n";
|
||||
}.${javaVersionPlatform};
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/graalvm-ce-java${javaVersionPlatform}-${version}.tar.gz";
|
||||
})
|
||||
(fetchurl {
|
||||
sha256 = {
|
||||
"8-linux-amd64" = "1jlvrxdlbsmlk3ia43h9m29kmmdn83h6zdlnf8qb7bm38c84nhsc";
|
||||
"11-linux-aarch64" = "sha256-7W5gkhj2kON2ocrGpyH/OL/phOyHkjNDId2CtyUAEWY=";
|
||||
"11-linux-amd64" = "1ybd7a6ii6582skr0nkxx7bccsa7gkg0yriql2h1lcz0rfzcdi3g";
|
||||
"11-darwin-amd64" = "1jdy845vanmz05zx5b9227gb1msh9wdrz2kf3fx9z54ssd9qgdhm";
|
||||
}.${javaVersionPlatform};
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/native-image-installable-svm-java${javaVersionPlatform}-${version}.jar";
|
||||
})
|
||||
(fetchurl {
|
||||
sha256 = {
|
||||
"8-linux-amd64" = "18ip0ay06q1pryqs8ja988mvk9vw475c0nfjcznnsd1zp296p6jc";
|
||||
"11-linux-aarch64" = "sha256-i9ysgqbI52PiXofZQ5AnPSzs2TeR8An5CIYzcwhx28o=";
|
||||
"11-linux-amd64" = "1jszz97mkqavxzyhx5jxhi43kqjxk9c36j5l5hy3kn8sdfmbplm4";
|
||||
"11-darwin-amd64" = "1767ryhv2cn5anlys63ysax1p8ag79bykac1xfrjfan8yv6d8ybl";
|
||||
}.${javaVersionPlatform};
|
||||
url = "https://github.com/oracle/truffleruby/releases/download/vm-${version}/ruby-installable-svm-java${javaVersionPlatform}-${version}.jar";
|
||||
})
|
||||
(fetchurl {
|
||||
sha256 = {
|
||||
"8-linux-amd64" = "08s36rjy5irg25b7lqx0m4v2wpywin3cqyhdrywhvq14f7zshsd5";
|
||||
"11-linux-aarch64" = "sha256-Lkc/mq1w18+PQ5McvLGyQBSOz/TMSUgwioRZ0Dtyhm4=";
|
||||
"11-linux-amd64" = "1ybjaknmbsdg8qzb986x39fq0h7fyiymdcigc7y86swk8dd916hv";
|
||||
"11-darwin-amd64" = "02dwlb62kqr4rjjmvkhn2xk9l1p47ahg9xyyfkw7im1jwlqmqnzf";
|
||||
}.${javaVersionPlatform};
|
||||
url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/wasm-installable-svm-java${javaVersionPlatform}-${version}.jar";
|
||||
})
|
||||
] ++ lib.optionals (platform == "amd64") [
|
||||
# graalpython is not available on aarch64 platforms yet
|
||||
(fetchurl {
|
||||
sha256 = {
|
||||
"8-linux-amd64" = "0il15438qnikqsxdsl7fcdg0c8zs3cbm4ry7pys7fxxr1ckd8szq";
|
||||
"11-linux-amd64" = "07759sr8nijvqm8aqn69x9vq7lyppns7a6l6xribv43jvfmwpfkl";
|
||||
"11-darwin-amd64" = "01l3as8dihc7xqy5sdkrpxmpzrqbcvvg84m2s6j1j8y2db1khf2s";
|
||||
}.${javaVersionPlatform};
|
||||
url = "https://github.com/graalvm/graalpython/releases/download/vm-${version}/python-installable-svm-java${javaVersionPlatform}-${version}.jar";
|
||||
})
|
||||
];
|
||||
srcs =
|
||||
let
|
||||
# Some platforms doesn't have all GraalVM features
|
||||
# e.g.: GraalPython on aarch64-linux
|
||||
# When the platform doesn't have a feature, sha256 is null on hashes.nix
|
||||
# To update hashes.nix file, run `./update.sh <graalvm-ce-version>`
|
||||
maybeFetchUrl = url: if url.sha256 != null then (fetchurl url) else null;
|
||||
in
|
||||
(lib.remove null
|
||||
(map
|
||||
maybeFetchUrl
|
||||
(import ./hashes.nix { inherit javaVersionPlatform; })));
|
||||
|
||||
buildInputs = lib.optionals stdenv.isLinux [
|
||||
alsa-lib # libasound.so wanted by lib/libjsound.so
|
||||
@@ -168,16 +133,6 @@ let
|
||||
done
|
||||
'';
|
||||
in {
|
||||
"8-linux-amd64" = ''
|
||||
${nativePRNGWorkaround "$out/jre/lib/security/java.security"}
|
||||
|
||||
${copyClibrariesToOut "$out/jre/lib/svm/clibraries"}
|
||||
|
||||
${copyClibrariesToLib}
|
||||
|
||||
# allow using external truffle-api.jar and languages not included in the distrubution
|
||||
rm $out/jre/lib/jvmci/parentClassLoader.classpath
|
||||
'';
|
||||
"11-linux-amd64" = ''
|
||||
${nativePRNGWorkaround "$out/conf/security/java.security"}
|
||||
|
||||
@@ -265,37 +220,47 @@ let
|
||||
''
|
||||
}
|
||||
|
||||
${
|
||||
lib.optionalString (platform == "amd64") ''
|
||||
echo "Testing interpreted languages"
|
||||
$out/bin/graalpython -c 'print(1 + 1)'
|
||||
$out/bin/ruby -e 'puts(1 + 1)'
|
||||
${# TODO: Doesn't work on MacOS, we have this error:
|
||||
# "Launching JShell execution engine threw: Operation not permitted (Bind failed)"
|
||||
lib.optionalString (stdenv.isLinux) ''
|
||||
echo "Testing Jshell"
|
||||
echo '1 + 1' | $out/bin/jshell
|
||||
''
|
||||
}
|
||||
|
||||
${
|
||||
lib.optionalString (platform != "linux-aarch64") ''
|
||||
echo "Testing GraalPython"
|
||||
$out/bin/graalpython -c 'print(1 + 1)'
|
||||
echo '1 + 1' | $out/bin/graalpython
|
||||
''
|
||||
}
|
||||
|
||||
echo "Testing TruffleRuby"
|
||||
$out/bin/ruby -e 'puts(1 + 1)'
|
||||
|
||||
${# TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
|
||||
# headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
|
||||
# though `openssl` is in `propagatedBuildInputs`. For more details see:
|
||||
# https://github.com/NixOS/nixpkgs/pull/105815
|
||||
# TODO: "truffleruby: an internal exception escaped out of the interpreter"
|
||||
# error on linux-aarch64
|
||||
lib.optionalString (platform == "linux-amd64") ''
|
||||
# TODO: "core/kernel.rb:234:in `gem_original_require':
|
||||
# /nix/store/wlc5xalzj2ip1l83siqw8ac5fjd52ngm-graalvm11-ce/languages/llvm/native/lib:
|
||||
# cannot read file data: Is a directory (RuntimeError)" error on linux-amd64
|
||||
lib.optionalString false ''
|
||||
echo '1 + 1' | $out/bin/irb
|
||||
''
|
||||
}
|
||||
'';
|
||||
|
||||
${# TODO: Doesn't work on MacOS, we have this error:
|
||||
# "Launching JShell execution engine threw: Operation not permitted (Bind failed)"
|
||||
lib.optionalString (javaVersion == "11" && stdenv.isLinux) ''
|
||||
echo '1 + 1' | $out/bin/jshell
|
||||
''
|
||||
}'';
|
||||
|
||||
passthru.home = graalvmXXX-ce;
|
||||
passthru = {
|
||||
home = graalvmXXX-ce;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
inherit platforms;
|
||||
homepage = "https://www.graalvm.org/";
|
||||
description = "High-Performance Polyglot VM";
|
||||
license = with licenses; [ upl gpl2Classpath bsd3 ];
|
||||
@@ -308,7 +273,6 @@ let
|
||||
ericdallo
|
||||
thiagokokada
|
||||
];
|
||||
platforms = platforms;
|
||||
};
|
||||
};
|
||||
in graalvmXXX-ce
|
||||
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -p curl -i bash coreutils nix common-updater-scripts curl jq
|
||||
|
||||
set -eou pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
info() { echo "[INFO] $*"; }
|
||||
|
||||
echo_file() { echo "$@" >> hashes.nix; }
|
||||
|
||||
if [[ -z "${1:-}" ]]; then
|
||||
readonly gh_version="$(curl -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | jq --raw-output .tag_name)"
|
||||
readonly version="${gh_version//vm-/}"
|
||||
else
|
||||
readonly version="$1"
|
||||
fi
|
||||
|
||||
readonly urls=(
|
||||
"https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/graalvm-ce-java@platform@-${version}.tar.gz"
|
||||
"https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/native-image-installable-svm-java@platform@-${version}.jar"
|
||||
"https://github.com/oracle/truffleruby/releases/download/vm-${version}/ruby-installable-svm-java@platform@-${version}.jar"
|
||||
"https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/wasm-installable-svm-java@platform@-${version}.jar"
|
||||
"https://github.com/graalvm/graalpython/releases/download/vm-${version}/python-installable-svm-java@platform@-${version}.jar"
|
||||
)
|
||||
|
||||
readonly platforms=(
|
||||
"11-linux-aarch64"
|
||||
"11-linux-amd64"
|
||||
"11-darwin-amd64"
|
||||
)
|
||||
|
||||
info "Deleting old hashes.nix file..."
|
||||
rm -f hashes.nix
|
||||
info "Generating hashes.nix file for 'graalvm-ce' v$version. This will take a while..."
|
||||
|
||||
echo_file "# Generated by $0 script"
|
||||
echo_file "{ javaVersionPlatform, ... }:"
|
||||
echo_file "["
|
||||
|
||||
for url in "${urls[@]}"; do
|
||||
echo_file " {"
|
||||
echo_file " sha256 = {"
|
||||
for platform in "${platforms[@]}"; do
|
||||
if hash="$(nix-prefetch-url "${url//@platform@/$platform}")"; then
|
||||
echo_file " \"$platform\" = \"$hash\";"
|
||||
fi
|
||||
done
|
||||
echo_file ' }.${javaVersionPlatform} or null;'
|
||||
echo_file " url = \"${url//@platform@/\$\{javaVersionPlatform\}}\";"
|
||||
echo_file " }"
|
||||
done
|
||||
|
||||
echo_file "]"
|
||||
|
||||
info "Updating 'version' file..."
|
||||
echo "$version" > version
|
||||
|
||||
info "Done!"
|
||||
@@ -0,0 +1 @@
|
||||
21.3.0
|
||||
@@ -334,7 +334,8 @@ mapAliases ({
|
||||
google-musicmanager = throw "google-musicmanager has been removed because Google Play Music was discontinued"; # added 2021-03-07
|
||||
googleAuthenticator = google-authenticator; # added 2016-10-16
|
||||
grantlee5 = libsForQt5.grantlee; # added 2015-12-19
|
||||
graalvm8 = graalvm8-ce;
|
||||
graalvm8 = throw "graalvm8-ce has been removed by upstream."; # added 2021-10-19
|
||||
graalvm8-ce = throw "graalvm8-ce has been removed by upstream."; # added 2021-10-19
|
||||
graalvm11 = graalvm11-ce;
|
||||
gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
|
||||
gtk_doc = gtk-doc; # added 2018-02-25
|
||||
|
||||
@@ -12117,7 +12117,6 @@ with pkgs;
|
||||
recurseIntoAttrs (callPackage ../development/compilers/graalvm/community-edition {
|
||||
inherit (darwin.apple_sdk.frameworks) Foundation;
|
||||
});
|
||||
graalvm8-ce = graalvmCEPackages.graalvm8-ce;
|
||||
graalvm11-ce = graalvmCEPackages.graalvm11-ce;
|
||||
|
||||
inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { })
|
||||
|
||||
Reference in New Issue
Block a user