Merge pull request #142388 from thiagokokada/add-graalvm-17

graalvm-ce: add graalvm17-ce

authored by Timo Kaufmann and committed by GitHub 4ccc8df4 b3ca4d07

+63 -31
+11 -2
pkgs/development/compilers/graalvm/community-edition/default.nix
··· 9 inherit mkGraal; 10 11 graalvm11-ce = mkGraal rec { 12 - version = lib.fileContents ./version; 13 javaVersion = "11"; 14 platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; 15 }; 16 17 - # TODO: added graalvm17-ce 18 }
··· 9 inherit mkGraal; 10 11 graalvm11-ce = mkGraal rec { 12 + version = "21.3.0"; 13 javaVersion = "11"; 14 platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ]; 15 }; 16 17 + # TODO: fix aarch64-linux, failing during Native Image compilation 18 + # "Caused by: java.io.IOException: Cannot run program 19 + # "/nix/store/1q1mif7h3lgxdaxg6j39hli5azikrfla-gcc-wrapper-9.3.0/bin/gcc" (in 20 + # directory"/tmp/SVM-4194439592488143713"): error=0, Failed to exec spawn 21 + # helper: pid: 19865, exit value: 1" 22 + graalvm17-ce = mkGraal rec { 23 + version = "21.3.0"; 24 + javaVersion = "17"; 25 + platforms = [ "x86_64-linux" "x86_64-darwin" ]; 26 + }; 27 }
+14
pkgs/development/compilers/graalvm/community-edition/hashes.nix
··· 4 { 5 sha256 = { 6 "11-linux-aarch64" = "0hsjxp6ly7jsn9k94fddcl7afc5gda66jyppcnfvslishbizqd0i"; 7 "11-linux-amd64" = "1ylk5l933z813k0k1xlayiv8fa0f1gmpr66bma51532iy3mch6rs"; 8 "11-darwin-amd64" = "0qpqnnmqxvxzj3mwz05acpg4n8ffqsz0sji8lbl03fgswpvgfavc"; 9 }.${javaVersionPlatform} or null; 10 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java${javaVersionPlatform}-21.3.0.tar.gz"; 11 } 12 { 13 sha256 = { 14 "11-linux-aarch64" = "0qlmg5fwvqsb5ab3irj2hrcd5jc94mibnlz1gvzpnq85rw1zcb6h"; 15 "11-linux-amd64" = "0kvnjr55rizy53vn0ff9w27z1qh9d1vp3s7r1kdl0wyhrbhd8n49"; 16 "11-darwin-amd64" = "1mg8c8hh8wmbwsisgarmp35jd0dall1fwdv49mggp74hicbc32h3"; 17 }.${javaVersionPlatform} or null; 18 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/native-image-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 19 } 20 { 21 sha256 = { 22 "11-linux-aarch64" = "02rvwl1nng8d3qn226rjx5yq2blxs4yz009ab928qanhmb4vhv8b"; 23 "11-linux-amd64" = "0zz62zr7imjaw9a3j5m66xs7c72cqb1i74ab3rnlh0dgs1mdpljg"; 24 "11-darwin-amd64" = "1wiv0299b2xrc229alczmjfj1bsn90p0wdm64rr39xnyyhbqrr80"; 25 }.${javaVersionPlatform} or null; 26 url = "https://github.com/oracle/truffleruby/releases/download/vm-21.3.0/ruby-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 27 } 28 { 29 sha256 = { 30 "11-linux-aarch64" = "1ck4c1z98h1zn4i6xhh1hb6w2jab6n17ddykb72xxw4vig9nhlc7"; 31 "11-linux-amd64" = "0gy8jj9d9msmj0i44sysiwq3j2k2w2g47fhq6y1aq47n3kmwj9kv"; 32 "11-darwin-amd64" = "0agw6k3jn2jh8wyc9h8rvzlgs96qh4nlj0y8nyzsmidvwq2ahl00"; 33 }.${javaVersionPlatform} or null; 34 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/wasm-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 35 } 36 { 37 sha256 = { 38 "11-linux-amd64" = "1l5av2v459q88zfl83877h7b3426z3d86kp6wqjvz2441brvidi0"; 39 "11-darwin-amd64" = "06694n74dzsfwlli1sjdsrfbj9ngw7bhrcayvy4sgy2va5qpdjs0"; 40 }.${javaVersionPlatform} or null; 41 url = "https://github.com/graalvm/graalpython/releases/download/vm-21.3.0/python-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 42 }
··· 4 { 5 sha256 = { 6 "11-linux-aarch64" = "0hsjxp6ly7jsn9k94fddcl7afc5gda66jyppcnfvslishbizqd0i"; 7 + "17-linux-aarch64" = "09hzl80m7f5ppmcvryz9aq0yw9scdkp5dqhblrqnkzyhvdjl5ycn"; 8 "11-linux-amd64" = "1ylk5l933z813k0k1xlayiv8fa0f1gmpr66bma51532iy3mch6rs"; 9 + "17-linux-amd64" = "1xn3shwkai61vvzsg595k8776a21ds00w2pjlscvfcbs1ag07n0i"; 10 "11-darwin-amd64" = "0qpqnnmqxvxzj3mwz05acpg4n8ffqsz0sji8lbl03fgswpvgfavc"; 11 + "17-darwin-amd64" = "1akpsrd9r2igcls0cvhpqw3jrnh59m8z80knx83lmj0cj836a8v0"; 12 }.${javaVersionPlatform} or null; 13 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/graalvm-ce-java${javaVersionPlatform}-21.3.0.tar.gz"; 14 } 15 { 16 sha256 = { 17 "11-linux-aarch64" = "0qlmg5fwvqsb5ab3irj2hrcd5jc94mibnlz1gvzpnq85rw1zcb6h"; 18 + "17-linux-aarch64" = "0jmarhwngs6vpbcgsix0dxhj42qj9vnk3vln8fhdxmydwnns8r1m"; 19 "11-linux-amd64" = "0kvnjr55rizy53vn0ff9w27z1qh9d1vp3s7r1kdl0wyhrbhd8n49"; 20 + "17-linux-amd64" = "0h14sml42jda54agjs1prfnyjaxxsc67350fr51n8p20nl28lj6z"; 21 "11-darwin-amd64" = "1mg8c8hh8wmbwsisgarmp35jd0dall1fwdv49mggp74hicbc32h3"; 22 + "17-darwin-amd64" = "0qz0xf2ph9gi45vvri7vphxh35m11nk7sa8nkwxl28l8bza0kb40"; 23 }.${javaVersionPlatform} or null; 24 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/native-image-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 25 } 26 { 27 sha256 = { 28 "11-linux-aarch64" = "02rvwl1nng8d3qn226rjx5yq2blxs4yz009ab928qanhmb4vhv8b"; 29 + "17-linux-aarch64" = "13kaxbgfp9pm6s28i5hfyg957iiwzrxf0ibibkv2yndgj64vj8xg"; 30 "11-linux-amd64" = "0zz62zr7imjaw9a3j5m66xs7c72cqb1i74ab3rnlh0dgs1mdpljg"; 31 + "17-linux-amd64" = "1v2iwznlav8dsjj30nlhvsvv7pxmyzkhkp1p7spjjma09d34q4iv"; 32 "11-darwin-amd64" = "1wiv0299b2xrc229alczmjfj1bsn90p0wdm64rr39xnyyhbqrr80"; 33 + "17-darwin-amd64" = "095sii8ibjcvvc6wnxk77ax151c4zgj8bpp81q3kyaazgpzvrk5s"; 34 }.${javaVersionPlatform} or null; 35 url = "https://github.com/oracle/truffleruby/releases/download/vm-21.3.0/ruby-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 36 } 37 { 38 sha256 = { 39 "11-linux-aarch64" = "1ck4c1z98h1zn4i6xhh1hb6w2jab6n17ddykb72xxw4vig9nhlc7"; 40 + "17-linux-aarch64" = "0p9gx5iq730br9wvacxs4403anxnjln6mx8v0dl4w4lhikjxsy8x"; 41 "11-linux-amd64" = "0gy8jj9d9msmj0i44sysiwq3j2k2w2g47fhq6y1aq47n3kmwj9kv"; 42 + "17-linux-amd64" = "0qk8rgbmnk84isnb33x5bbh17bnnmq9yqasfgy5p953min6pbxj7"; 43 "11-darwin-amd64" = "0agw6k3jn2jh8wyc9h8rvzlgs96qh4nlj0y8nyzsmidvwq2ahl00"; 44 + "17-darwin-amd64" = "0l1il0rq48sw6sha9jr0xphjgrm7q0kywy8z94mabm9maqh7l3rn"; 45 }.${javaVersionPlatform} or null; 46 url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.3.0/wasm-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 47 } 48 { 49 sha256 = { 50 "11-linux-amd64" = "1l5av2v459q88zfl83877h7b3426z3d86kp6wqjvz2441brvidi0"; 51 + "17-linux-amd64" = "100p1cgw0z4yfy4axb3gr32m8jnyx1f8bj6f6kk0mf3l8fv2kb7p"; 52 "11-darwin-amd64" = "06694n74dzsfwlli1sjdsrfbj9ngw7bhrcayvy4sgy2va5qpdjs0"; 53 + "17-darwin-amd64" = "1qwg45q0760lsa62h0nk2zdv0r1npr82bh6p1z3md6pjppm7i025"; 54 }.${javaVersionPlatform} or null; 55 url = "https://github.com/graalvm/graalpython/releases/download/vm-21.3.0/python-installable-svm-java${javaVersionPlatform}-21.3.0.jar"; 56 }
+20 -20
pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
··· 1 - { version, javaVersion, platforms }: 2 3 { stdenv, lib, fetchurl, autoPatchelfHook, setJavaClassPath, makeWrapper 4 # minimum dependencies ··· 35 maybeFetchUrl = url: if url.sha256 != null then (fetchurl url) else null; 36 in 37 (lib.remove null 38 - (map 39 - maybeFetchUrl 40 - (import ./hashes.nix { inherit javaVersionPlatform; }))); 41 42 buildInputs = lib.optionals stdenv.isLinux [ 43 alsa-lib # libasound.so wanted by lib/libjsound.so ··· 111 outputs = [ "out" "lib" ]; 112 113 installPhase = let 114 - nativePRNGWorkaround = path: '' 115 - # BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html 116 - substituteInPlace ${path} \ 117 - --replace file:/dev/random file:/dev/./urandom \ 118 - --replace NativePRNGBlocking SHA1PRNG 119 - ''; 120 copyClibrariesToOut = basepath: '' 121 # provide libraries needed for static compilation 122 for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do ··· 134 ''; 135 in { 136 "11-linux-amd64" = '' 137 - ${nativePRNGWorkaround "$out/conf/security/java.security"} 138 139 ${copyClibrariesToOut "$out/lib/svm/clibraries"} 140 141 ${copyClibrariesToLib} 142 ''; 143 "11-linux-aarch64" = '' 144 - ${nativePRNGWorkaround "$out/conf/security/java.security"} 145 - 146 ${copyClibrariesToOut "$out/lib/svm/clibraries"} 147 148 ${copyClibrariesToLib} 149 ''; 150 - "11-darwin-amd64" = '' 151 - # create empty $lib/lib to avoid breaking builds 152 - mkdir -p $lib/lib 153 - ${nativePRNGWorkaround "$out/conf/security/java.security"} 154 ''; 155 }.${javaVersionPlatform} + '' 156 # jni.h expects jni_md.h to be in the header search path. 157 ln -s $out/include/linux/*_md.h $out/include/ 158 ''; ··· 237 } 238 239 echo "Testing TruffleRuby" 240 $out/bin/ruby -e 'puts(1 + 1)' 241 - 242 - ${# TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL 243 # headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even 244 # though `openssl` is in `propagatedBuildInputs`. For more details see: 245 # https://github.com/NixOS/nixpkgs/pull/105815 ··· 252 echo '1 + 1' | $out/bin/irb 253 '' 254 } 255 - ''; 256 257 passthru = { 258 home = graalvmXXX-ce;
··· 1 + { version, javaVersion, platforms, hashes ? import ./hashes.nix }: 2 3 { stdenv, lib, fetchurl, autoPatchelfHook, setJavaClassPath, makeWrapper 4 # minimum dependencies ··· 35 maybeFetchUrl = url: if url.sha256 != null then (fetchurl url) else null; 36 in 37 (lib.remove null 38 + (map maybeFetchUrl (hashes { inherit javaVersionPlatform; }))); 39 40 buildInputs = lib.optionals stdenv.isLinux [ 41 alsa-lib # libasound.so wanted by lib/libjsound.so ··· 109 outputs = [ "out" "lib" ]; 110 111 installPhase = let 112 copyClibrariesToOut = basepath: '' 113 # provide libraries needed for static compilation 114 for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do ··· 126 ''; 127 in { 128 "11-linux-amd64" = '' 129 + ${copyClibrariesToOut "$out/lib/svm/clibraries"} 130 131 + ${copyClibrariesToLib} 132 + ''; 133 + "17-linux-amd64" = '' 134 ${copyClibrariesToOut "$out/lib/svm/clibraries"} 135 136 ${copyClibrariesToLib} 137 ''; 138 "11-linux-aarch64" = '' 139 ${copyClibrariesToOut "$out/lib/svm/clibraries"} 140 141 ${copyClibrariesToLib} 142 ''; 143 + "17-linux-aarch64" = '' 144 + ${copyClibrariesToOut "$out/lib/svm/clibraries"} 145 + 146 + ${copyClibrariesToLib} 147 ''; 148 + "11-darwin-amd64" = ""; 149 + "17-darwin-amd64" = ""; 150 }.${javaVersionPlatform} + '' 151 + # ensure that $lib/lib exists to avoid breaking builds 152 + mkdir -p $lib/lib 153 # jni.h expects jni_md.h to be in the header search path. 154 ln -s $out/include/linux/*_md.h $out/include/ 155 ''; ··· 234 } 235 236 echo "Testing TruffleRuby" 237 + # Hide warnings about wrong locale 238 + export LANG=C 239 + export LC_ALL=C 240 $out/bin/ruby -e 'puts(1 + 1)' 241 + ${# FIXME: irb is broken in all platforms 242 + # TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL 243 # headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even 244 # though `openssl` is in `propagatedBuildInputs`. For more details see: 245 # https://github.com/NixOS/nixpkgs/pull/105815 ··· 252 echo '1 + 1' | $out/bin/irb 253 '' 254 } 255 + ''; 256 257 passthru = { 258 home = graalvmXXX-ce;
+17 -8
pkgs/development/compilers/graalvm/community-edition/update.sh
··· 1 #!/usr/bin/env nix-shell 2 - #!nix-shell -p curl -i bash coreutils nix common-updater-scripts curl jq 3 4 set -eou pipefail 5 ··· 13 [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] 14 } 15 16 - readonly old_version="$(cat version)" 17 18 if [[ -z "${1:-}" ]]; then 19 - readonly gh_version="$(curl -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | jq --raw-output .tag_name)" 20 readonly new_version="${gh_version//vm-/}" 21 else 22 readonly new_version="$1" 23 fi 24 25 - if verlte "$new_version" "$old_version"; then 26 - info "graalvm-ce $old_version is up-to-date. Exiting..." 27 - exit 0 28 else 29 info "graalvm-ce $old_version is out-of-date. Updating..." 30 fi ··· 39 40 readonly platforms=( 41 "11-linux-aarch64" 42 "11-linux-amd64" 43 "11-darwin-amd64" 44 ) 45 46 info "Deleting old hashes.nix file..." ··· 66 67 echo_file "]" 68 69 - info "Updating 'version' file..." 70 - echo "$new_version" > version 71 72 info "Done!"
··· 1 #!/usr/bin/env nix-shell 2 + #!nix-shell -p coreutils curl nix jq gnused -i bash 3 4 set -eou pipefail 5 ··· 13 [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] 14 } 15 16 + readonly nixpkgs=../../../../.. 17 + 18 + readonly old_version="$(nix-instantiate "$nixpkgs" --eval --strict -A graalvm11-ce.version)" 19 20 if [[ -z "${1:-}" ]]; then 21 + readonly gh_version="$(curl \ 22 + ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ 23 + -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | \ 24 + jq --raw-output .tag_name)" 25 readonly new_version="${gh_version//vm-/}" 26 else 27 readonly new_version="$1" 28 fi 29 30 + if verlte "$old_version" "$new_version"; then 31 + info "graalvm-ce $old_version is up-to-date." 32 + [[ -z "${FORCE:-}" ]] && exit 0 33 else 34 info "graalvm-ce $old_version is out-of-date. Updating..." 35 fi ··· 44 45 readonly platforms=( 46 "11-linux-aarch64" 47 + "17-linux-aarch64" 48 "11-linux-amd64" 49 + "17-linux-amd64" 50 "11-darwin-amd64" 51 + "17-darwin-amd64" 52 ) 53 54 info "Deleting old hashes.nix file..." ··· 74 75 echo_file "]" 76 77 + info "Updating graalvm-ce version..." 78 + # update-source-version does not work here since it expects src attribute 79 + sed "s|$old_version|\"$new_version\"|" -i default.nix 80 81 info "Done!"
-1
pkgs/development/compilers/graalvm/community-edition/version
··· 1 - 21.3.0
···
+1
pkgs/top-level/all-packages.nix
··· 12218 inherit (darwin.apple_sdk.frameworks) Foundation; 12219 }); 12220 graalvm11-ce = graalvmCEPackages.graalvm11-ce; 12221 12222 inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { }) 12223 graalvm8-ee
··· 12218 inherit (darwin.apple_sdk.frameworks) Foundation; 12219 }); 12220 graalvm11-ce = graalvmCEPackages.graalvm11-ce; 12221 + graalvm17-ce = graalvmCEPackages.graalvm17-ce; 12222 12223 inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { }) 12224 graalvm8-ee