diff options
author | Thiago Kenji Okada <thiagokokada@gmail.com> | 2023-09-29 11:12:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-29 11:12:22 +0100 |
commit | 88c5afe1535bc94ee275432ac5fcf50dd6579581 (patch) | |
tree | e7433ba407abdb2a1580cef8be9167b89d0a9158 /pkgs | |
parent | bd9b686c0168041aea600222be0805a0de6e6ab8 (diff) | |
parent | 6a8719229c23824e20887a383f1ae0b9a2415ea3 (diff) | |
download | nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar.gz nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar.bz2 nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar.lz nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar.xz nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.tar.zst nixpkgs-88c5afe1535bc94ee275432ac5fcf50dd6579581.zip |
Merge pull request #257433 from thiagokokada/graalvm-bump
graalvm-ce: 22.3.1 -> 21.0.0
Diffstat (limited to 'pkgs')
25 files changed, 396 insertions, 953 deletions
diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix index c3c4a7b1e57..7212ffa40dc 100644 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ b/pkgs/build-support/build-graalvm-native-image/default.nix @@ -71,7 +71,5 @@ stdenv.mkDerivation ({ platforms = graalvmDrv.meta.platforms; # default to executable name mainProgram = executable; - # need to have native-image-installable-svm available - broken = !(builtins.any (p: (p.product or "") == "native-image-installable-svm") graalvmDrv.products); } // meta; } // extraArgs) diff --git a/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix b/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix index a3236c14a08..7d62411f574 100644 --- a/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix +++ b/pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix @@ -7,20 +7,23 @@ , darwin , fontconfig , glib +, glibc , gtk3 , makeWrapper +, musl +, runCommandCC , setJavaClassPath , unzip , xorg , zlib # extra params -, javaVersion -, meta ? { } -, products ? [ ] +, extraCLibs ? [ ] , gtkSupport ? stdenv.isLinux +, useMusl ? false , ... } @ args: +assert useMusl -> stdenv.isLinux; let extraArgs = builtins.removeAttrs args [ "lib" @@ -32,24 +35,56 @@ let "darwin" "fontconfig" "glib" + "glibc" "gtk3" "makeWrapper" + "musl" + "runCommandCC" "setJavaClassPath" "unzip" "xorg" "zlib" - "javaVersion" - "meta" - "products" + "extraCLibs" "gtkSupport" + "useMusl" + "passthru" + "meta" ]; + + cLibs = lib.optionals stdenv.isLinux ( + [ glibc zlib.static ] + ++ lib.optionals (!useMusl) [ glibc.static ] + ++ lib.optionals useMusl [ musl ] + ++ extraCLibs + ); + + # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc + musl-gcc = (runCommandCC "musl-gcc" { } '' + mkdir -p $out/bin + ln -s ${lib.getDev musl}/bin/musl-gcc $out/bin/${stdenv.hostPlatform.system}-musl-gcc + ''); + # GraalVM 23.0.0+ (i.e.: JDK 21.0.0+) clean-up the environment inside darwin + # So we need to re-added some env vars to make everything work correctly again + darwin-cc = (runCommandCC "darwin-cc" + { + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ darwin.apple_sdk.frameworks.Foundation zlib ]; + } '' + makeWrapper ${stdenv.cc}/bin/cc $out/bin/cc \ + --prefix NIX_CFLAGS_COMPILE_${stdenv.cc.suffixSalt} : "$NIX_CFLAGS_COMPILE" \ + --prefix NIX_LDFLAGS_${stdenv.cc.suffixSalt} : "$NIX_LDFLAGS" + ''); + binPath = lib.makeBinPath ( + lib.optionals stdenv.isDarwin [ darwin-cc ] + ++ lib.optionals useMusl [ musl-gcc ] + ++ [ stdenv.cc ] + ); + runtimeLibraryPath = lib.makeLibraryPath ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]); - mapProducts = key: default: (map (p: p.graalvmPhases.${key} or default) products); - concatProducts = key: lib.concatStringsSep "\n" (mapProducts key ""); - graalvmXXX-ce = stdenv.mkDerivation ({ - pname = "graalvm${javaVersion}-ce"; + graalvm-ce = stdenv.mkDerivation ({ + pname = "graalvm-ce"; unpackPhase = '' runHook preUnpack @@ -71,22 +106,16 @@ let # Sanity check if [ ! -d "$out/bin" ]; then - echo "The `bin` is directory missing after extracting the graalvm" - echo "tarball, please compare the directory structure of the" - echo "tarball with what happens in the unpackPhase (in particular" - echo "with regards to the `--strip-components` flag)." - exit 1 + echo "The `bin` is directory missing after extracting the graalvm" + echo "tarball, please compare the directory structure of the" + echo "tarball with what happens in the unpackPhase (in particular" + echo "with regards to the `--strip-components` flag)." + exit 1 fi runHook postUnpack ''; - postUnpack = '' - for product in ${toString products}; do - cp -Rv $product/* $out - done - ''; - dontStrip = true; nativeBuildInputs = [ unzip makeWrapper ] @@ -106,7 +135,6 @@ let xorg.libXtst ]; - preInstall = concatProducts "preInstall"; postInstall = '' # jni.h expects jni_md.h to be in the header search path. ln -sf $out/include/linux/*_md.h $out/include/ @@ -115,52 +143,72 @@ let # Set JAVA_HOME automatically. mkdir -p $out/nix-support cat > $out/nix-support/setup-hook << EOF - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi EOF - '' + concatProducts "postInstall"; + + wrapProgram $out/bin/native-image \ + --prefix PATH : ${binPath} \ + ${toString (map (l: "--add-flags '-H:CLibraryPath=${l}/lib'") cLibs)} + ''; preFixup = lib.optionalString (stdenv.isLinux) '' for bin in $(find "$out/bin" -executable -type f); do wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" done - '' + concatProducts "preFixup"; - postFixup = concatProducts "postFixup"; + ''; doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck ${# broken in darwin - lib.optionalString stdenv.isLinux '' + lib.optionalString stdenv.isLinux '' echo "Testing Jshell" echo '1 + 1' | $out/bin/jshell ''} - echo ${ - lib.escapeShellArg '' - public class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello World"); - } + echo ${lib.escapeShellArg '' + public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello World"); } - '' - } > HelloWorld.java + } + ''} > HelloWorld.java $out/bin/javac HelloWorld.java # run on JVM with Graal Compiler echo "Testing GraalVM" $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' - ${concatProducts "installCheckPhase"} + echo "Ahead-Of-Time compilation" + $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:-CheckToolchain -H:+ReportExceptionStackTraces HelloWorld + ./helloworld | fgrep 'Hello World' + + ${# --static is only available in Linux + lib.optionalString (stdenv.isLinux && !useMusl) '' + echo "Ahead-Of-Time compilation with -H:+StaticExecutableWithDynamicLibC" + $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:+StaticExecutableWithDynamicLibC HelloWorld + ./helloworld | fgrep 'Hello World' + + echo "Ahead-Of-Time compilation with --static" + $out/bin/native-image --static HelloWorld + ./helloworld | fgrep 'Hello World' + ''} + + ${# --static is only available in Linux + lib.optionalString (stdenv.isLinux && useMusl) '' + echo "Ahead-Of-Time compilation with --static and --libc=musl" + $out/bin/native-image --static HelloWorld --libc=musl + ./helloworld | fgrep 'Hello World' + ''} runHook postInstallCheck ''; passthru = { - inherit products; - home = graalvmXXX-ce; - updateScript = ./update.sh; - }; + home = graalvm-ce; + updateScript = [ ./update.sh "graalvm-ce" ]; + } // (args.passhtru or { }); meta = with lib; ({ homepage = "https://www.graalvm.org/"; @@ -169,7 +217,7 @@ let sourceProvenance = with sourceTypes; [ binaryNativeCode ]; mainProgram = "java"; maintainers = with maintainers; teams.graalvm-ce.members ++ [ ]; - } // meta); + } // (args.meta or { })); } // extraArgs); in -graalvmXXX-ce +graalvm-ce diff --git a/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix b/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix index a9eb04cdb3c..579e4058080 100644 --- a/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix +++ b/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix @@ -1,20 +1,15 @@ { lib , stdenv , autoPatchelfHook +, darwin , graalvm-ce , makeWrapper -, perl -, unzip , zlib , libxcrypt-legacy # extra params , product -, javaVersion , extraBuildInputs ? [ ] , extraNativeBuildInputs ? [ ] -, graalvmPhases ? { } -, meta ? { } -, passthru ? { } , ... } @ args: @@ -23,24 +18,21 @@ let "lib" "stdenv" "autoPatchelfHook" + "darwin" "graalvm-ce" + "libxcrypt-legacy" "makeWrapper" - "perl" - "unzip" "zlib" "product" - "javaVersion" "extraBuildInputs" "extraNativeBuildInputs" - "graalvmPhases" "meta" - "passthru" ]; in stdenv.mkDerivation ({ - pname = "${product}-java${javaVersion}"; + pname = product; - nativeBuildInputs = [ perl unzip makeWrapper ] + nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isLinux autoPatchelfHook ++ extraNativeBuildInputs; @@ -48,61 +40,37 @@ stdenv.mkDerivation ({ stdenv.cc.cc.lib # libstdc++.so.6 zlib libxcrypt-legacy # libcrypt.so.1 (default is .2 now) - ] ++ extraBuildInputs; + ] + ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation + ++ extraBuildInputs; unpackPhase = '' runHook preUnpack - unpack_jar() { - local jar="$1" - unzip -q -o "$jar" -d "$out" - perl -ne 'use File::Path qw(make_path); - use File::Basename qw(dirname); - if (/^(.+) = (.+)$/) { - make_path dirname("$ENV{out}/$1"); - symlink $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" - unpack_jar "$src" + tar xf "$src" -C "$out" --strip-components=1 - runHook postUnpack - ''; - - # Allow autoPatchelf to automatically fix lib references between products - fixupPhase = '' - runHook preFixup + # Sanity check + if [ ! -d "$out/bin" ]; then + echo "The `bin` is directory missing after extracting the graalvm" + echo "tarball, please compare the directory structure of the" + echo "tarball with what happens in the unpackPhase (in particular" + echo "with regards to the `--strip-components` flag)." + exit 1 + fi - mkdir -p $out/lib - shopt -s globstar - ln -s $out/languages/**/lib/*.so $out/lib - - runHook postFixup + runHook postUnpack ''; - dontInstall = true; - dontBuild = true; dontStrip = true; passthru = { - inherit product javaVersion; - # build phases that are going to run during GraalVM derivation build, - # since they depend in having the fully setup GraalVM environment - # e.g.: graalvmPhases.installCheckPhase will run the checks only after - # GraalVM+products is build - # see buildGraalvm.nix file for the available phases - inherit graalvmPhases; - } // passthru; + updateScript = [ ./update.sh product ]; + } // (args.passhtru or { }); - meta = with lib; ({ + meta = ({ inherit (graalvm-ce.meta) homepage license sourceProvenance maintainers platforms; description = "High-Performance Polyglot VM (Product: ${product})"; - } // meta); + } // (args.meta or { })); } // extraArgs) diff --git a/pkgs/development/compilers/graalvm/community-edition/default.nix b/pkgs/development/compilers/graalvm/community-edition/default.nix index 2bc6c059013..a29a81783c9 100644 --- a/pkgs/development/compilers/graalvm/community-edition/default.nix +++ b/pkgs/development/compilers/graalvm/community-edition/default.nix @@ -4,237 +4,20 @@ , fetchurl }: -let +{ buildGraalvm = callPackage ./buildGraalvm.nix; - buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix; - javaPlatform = { - "aarch64-linux" = "linux-aarch64"; - "x86_64-linux" = "linux-amd64"; - "aarch64-darwin" = "darwin-aarch64"; - "x86_64-darwin" = "darwin-amd64"; - }; - javaPlatformVersion = javaVersion: - "${javaVersion}-${javaPlatform.${stdenv.system} or (throw "Unsupported platform: ${stdenv.system}")}"; - source = product: javaVersion: (import ./hashes.nix).${product}.${javaPlatformVersion javaVersion} - or (throw "Unsupported product combination: product=${product} java=${javaVersion} system=${stdenv.system}"); - -in -rec { - inherit buildGraalvm buildGraalvmProduct; - - ### Java 11 ### - - # Mostly available for build purposes, not to be exposed at the top level - graalvm11-ce-bare = buildGraalvm rec { - version = "22.3.1"; - javaVersion = "11"; - src = fetchurl (source "graalvm-ce" javaVersion); - meta.platforms = builtins.attrNames javaPlatform; - products = [ ]; - }; - - graalvm11-ce = graalvm11-ce-bare.override { - products = [ native-image-installable-svm-java11 ]; - }; - - # Mostly available for testing, not to be exposed at the top level - graalvm11-ce-full = graalvm11-ce-bare.override { - products = [ - js-installable-svm-java11 - llvm-installable-svm-java11 - native-image-installable-svm-java11 - nodejs-installable-svm-java11 - python-installable-svm-java11 - ruby-installable-svm-java11 - wasm-installable-svm-java11 - ]; - }; - - js-installable-svm-java11 = callPackage ./js-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "js-installable-svm" javaVersion); - }; - - llvm-installable-svm-java11 = callPackage ./llvm-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "llvm-installable-svm" javaVersion); - }; - - native-image-installable-svm-java11 = callPackage ./native-image-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "native-image-installable-svm" javaVersion); - }; - - nodejs-installable-svm-java11 = callPackage ./nodejs-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "nodejs-installable-svm" javaVersion); - graalvm-ce = graalvm11-ce-bare; - }; - - python-installable-svm-java11 = callPackage ./python-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "python-installable-svm" javaVersion); - }; - - ruby-installable-svm-java11 = callPackage ./ruby-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "ruby-installable-svm" javaVersion); - llvm-installable-svm = llvm-installable-svm-java11; - }; - - wasm-installable-svm-java11 = callPackage ./wasm-installable-svm.nix rec { - javaVersion = "11"; - version = "22.3.1"; - src = fetchurl (source "wasm-installable-svm" javaVersion); - }; - - ### Java 17 ### - - # Mostly available for build purposes, not to be exposed at the top level - graalvm17-ce-bare = buildGraalvm rec { - version = "22.3.1"; - javaVersion = "17"; - src = fetchurl (source "graalvm-ce" javaVersion); - meta.platforms = builtins.attrNames javaPlatform; - products = [ ]; - }; - graalvm17-ce = graalvm17-ce-bare.override { - products = [ native-image-installable-svm-java17 ]; - }; - - # Mostly available for testing, not to be exposed at the top level - graalvm17-ce-full = graalvm17-ce-bare.override { - products = [ - js-installable-svm-java17 - llvm-installable-svm-java17 - native-image-installable-svm-java17 - nodejs-installable-svm-java17 - python-installable-svm-java17 - ruby-installable-svm-java17 - wasm-installable-svm-java17 - ]; - }; - - js-installable-svm-java17 = callPackage ./js-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "js-installable-svm" javaVersion); - }; - - llvm-installable-svm-java17 = callPackage ./llvm-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "llvm-installable-svm" javaVersion); - }; - - native-image-installable-svm-java17 = callPackage ./native-image-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "native-image-installable-svm" javaVersion); - }; - - nodejs-installable-svm-java17 = callPackage ./nodejs-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "nodejs-installable-svm" javaVersion); - graalvm-ce = graalvm17-ce-bare; - }; - - python-installable-svm-java17 = callPackage ./python-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "python-installable-svm" javaVersion); - }; - - ruby-installable-svm-java17 = callPackage ./ruby-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "ruby-installable-svm" javaVersion); - llvm-installable-svm = llvm-installable-svm-java17; - }; - - wasm-installable-svm-java17 = callPackage ./wasm-installable-svm.nix rec { - javaVersion = "17"; - version = "22.3.1"; - src = fetchurl (source "wasm-installable-svm" javaVersion); - }; - - ### Java 19 ### - - # Mostly available for build purposes, not to be exposed at the top level - graalvm19-ce-bare = buildGraalvm rec { - version = "22.3.1"; - javaVersion = "19"; - src = fetchurl (source "graalvm-ce" javaVersion); - meta.platforms = builtins.attrNames javaPlatform; - products = [ ]; - }; - - graalvm19-ce = graalvm19-ce-bare.override { - products = [ native-image-installable-svm-java19 ]; - }; - - # Mostly available for testing, not to be exposed at the top level - graalvm19-ce-full = graalvm19-ce-bare.override { - products = [ - js-installable-svm-java19 - llvm-installable-svm-java19 - native-image-installable-svm-java19 - nodejs-installable-svm-java19 - python-installable-svm-java19 - ruby-installable-svm-java19 - wasm-installable-svm-java19 - ]; - }; - - js-installable-svm-java19 = callPackage ./js-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "js-installable-svm" javaVersion); - }; + buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix; - llvm-installable-svm-java19 = callPackage ./llvm-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "llvm-installable-svm" javaVersion); - }; + graalvm-ce = callPackage ./graalvm-ce { }; - native-image-installable-svm-java19 = callPackage ./native-image-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "native-image-installable-svm" javaVersion); - }; + graalvm-ce-musl = callPackage ./graalvm-ce { useMusl = true; }; - nodejs-installable-svm-java19 = callPackage ./nodejs-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "nodejs-installable-svm" javaVersion); - graalvm-ce = graalvm19-ce-bare; - }; + graaljs = callPackage ./graaljs { }; - python-installable-svm-java19 = callPackage ./python-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "python-installable-svm" javaVersion); - }; + graalnodejs = callPackage ./graalnodejs { }; - ruby-installable-svm-java19 = callPackage ./ruby-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "ruby-installable-svm" javaVersion); - llvm-installable-svm = llvm-installable-svm-java19; - }; + graalpy = callPackage ./graalpy { }; - wasm-installable-svm-java19 = callPackage ./wasm-installable-svm.nix rec { - javaVersion = "19"; - version = "22.3.1"; - src = fetchurl (source "wasm-installable-svm" javaVersion); - }; + truffleruby = callPackage ./truffleruby { }; } diff --git a/pkgs/development/compilers/graalvm/community-edition/graaljs/default.nix b/pkgs/development/compilers/graalvm/community-edition/graaljs/default.nix new file mode 100644 index 00000000000..0a7f04052bb --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graaljs/default.nix @@ -0,0 +1,17 @@ +{ stdenv +, fetchurl +, graalvmCEPackages +}: + +graalvmCEPackages.buildGraalvmProduct { + src = fetchurl (import ./hashes.nix).hashes.${stdenv.system}; + version = (import ./hashes.nix).version; + + product = "js-installable-svm"; + + doInstallCheck = true; + installCheckPhase = '' + echo "Testing GraalJS" + echo '1 + 1' | $out/bin/js + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graaljs/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graaljs/hashes.nix new file mode 100644 index 00000000000..268a9743a02 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graaljs/hashes.nix @@ -0,0 +1,22 @@ +# Generated by update.sh script +{ + "version" = "23.1.0"; + "hashes" = { + "aarch64-linux" = { + sha256 = "09q88nsbz0lrl866x3hqxm3hb5wpn4x5rp6pk69x1v6xzl58wzq2"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graaljs-community-23.1.0-linux-aarch64.tar.gz"; + }; + "x86_64-linux" = { + sha256 = "0zlk0gpxwjkh4wxsc310kl80ipgk5si1lmyx0q2hqsw9lm98n41g"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graaljs-community-23.1.0-linux-amd64.tar.gz"; + }; + "x86_64-darwin" = { + sha256 = "1y5mc92yync85ywcahvq8x9jlla0rzjd4g7cm6q7p21wvfwp4d5q"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graaljs-community-23.1.0-macos-amd64.tar.gz"; + }; + "aarch64-darwin" = { + sha256 = "0ph3c6jgbvm3cliyqlccd2l292a7p0051l3sv7yf3318r6zrrk7m"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graaljs-community-23.1.0-macos-aarch64.tar.gz"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalnodejs/default.nix b/pkgs/development/compilers/graalvm/community-edition/graalnodejs/default.nix new file mode 100644 index 00000000000..fb6d1595bbf --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalnodejs/default.nix @@ -0,0 +1,17 @@ +{ stdenv +, fetchurl +, graalvmCEPackages +}: + +graalvmCEPackages.buildGraalvmProduct { + src = fetchurl (import ./hashes.nix).hashes.${stdenv.system}; + version = (import ./hashes.nix).version; + + product = "nodejs-installable-svm"; + + doInstallCheck = true; + installCheckPhase = '' + echo "Testing NodeJS" + $out/bin/npx --help + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalnodejs/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graalnodejs/hashes.nix new file mode 100644 index 00000000000..3546a11c2fc --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalnodejs/hashes.nix @@ -0,0 +1,22 @@ +# Generated by update.sh script +{ + "version" = "23.1.0"; + "hashes" = { + "aarch64-linux" = { + sha256 = "056x616pp0b25wsryzrfrfnjaxr3444fc3hmv8jspl4pjxjrais2"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graalnodejs-community-23.1.0-linux-aarch64.tar.gz"; + }; + "x86_64-linux" = { + sha256 = "1si2ifwihszv06sqd25mswibiqbxhxgj6yw829f8zrdhs0sra2nz"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graalnodejs-community-23.1.0-linux-amd64.tar.gz"; + }; + "x86_64-darwin" = { + sha256 = "1ffkdavrs92h3f5yil15v3i7r9aggkpfqd13gl5ipqlrk6pykhr7"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graalnodejs-community-23.1.0-macos-amd64.tar.gz"; + }; + "aarch64-darwin" = { + sha256 = "1g6pql0pdxhxwpjqyfkaq07dar8sx2wipsyrjc7hmz3z7pjxcf5i"; + url = "https://github.com/oracle/graaljs/releases/download/graal-23.1.0/graalnodejs-community-23.1.0-macos-aarch64.tar.gz"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalpy/default.nix b/pkgs/development/compilers/graalvm/community-edition/graalpy/default.nix new file mode 100644 index 00000000000..e2b28500f7f --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalpy/default.nix @@ -0,0 +1,18 @@ +{ stdenv +, fetchurl +, graalvmCEPackages +}: + +graalvmCEPackages.buildGraalvmProduct { + src = fetchurl (import ./hashes.nix).hashes.${stdenv.system}; + version = (import ./hashes.nix).version; + + product = "graalpy"; + + doInstallCheck = true; + installCheckPhase = '' + echo "Testing GraalPy" + $out/bin/graalpy -c 'print(1 + 1)' + echo '1 + 1' | $out/bin/graalpy + ''; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix new file mode 100644 index 00000000000..da582e3ea19 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix @@ -0,0 +1,22 @@ +# Generated by update.sh script +{ + "version" = "23.1.0"; + "hashes" = { + "aarch64-linux" = { + sha256 = "0n0zz86h7jsqgdiyj6vj7qw57ny40jpmfvylyxq70riy86a4zp67"; + url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.0/graalpy-community-23.1.0-linux-aarch64.tar.gz"; + }; + "x86_64-linux" = { + sha256 = "0nnv255f2bqc4l88iw48f71874ryjn16bb8qn1yk7daj1pck80vj"; + url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.0/graalpy-community-23.1.0-linux-amd64.tar.gz"; + }; + "x86_64-darwin" = { + sha256 = "16kp66l0176sbd8jzvq3y3z7d9zvkqzdaw8vrvnk2qkipa136n0k"; + url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.0/graalpy-community-23.1.0-macos-amd64.tar.gz"; + }; + "aarch64-darwin" = { + sha256 = "17clq7n1n5ww22rh9gp5h9ljhjvggcik8amhd70pwl4cjgv9mhsv"; + url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.0/graalpy-community-23.1.0-macos-aarch64.tar.gz"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/default.nix b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/default.nix new file mode 100644 index 00000000000..b7f7db61097 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/default.nix @@ -0,0 +1,12 @@ +{ stdenv +, fetchurl +, graalvmCEPackages +, useMusl ? false +}: + +graalvmCEPackages.buildGraalvm { + inherit useMusl; + src = fetchurl (import ./hashes.nix).hashes.${stdenv.system}; + version = (import ./hashes.nix).version; + meta.platforms = builtins.attrNames (import ./hashes.nix).hashes; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix new file mode 100644 index 00000000000..377a05426c9 --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix @@ -0,0 +1,22 @@ +# Generated by update.sh script +{ + "version" = "21.0.0"; + "hashes" = { + "aarch64-linux" = { + sha256 = "199h3d6zayw28xlyggldap6nafh5fnpfbshs0rsf94dfgv7r4kmv"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.0/graalvm-community-jdk-21.0.0_linux-aarch64_bin.tar.gz"; + }; + "x86_64-linux" = { + sha256 = "06dkb1yimk5q3yzjk6kjsrs2pkbjxgz9jr5vj6wfb2y5ri0jjhkc"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.0/graalvm-community-jdk-21.0.0_linux-x64_bin.tar.gz"; + }; + "x86_64-darwin" = { + sha256 = "1qbz3xfxj7nwb01cy99hd22k3pim8j43blcdcys48l8xcb234nlk"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.0/graalvm-community-jdk-21.0.0_macos-x64_bin.tar.gz"; + }; + "aarch64-darwin" = { + sha256 = "0dqgsp0bhqvv07b9kb0cxqm5cw47kapzbfbw13570ydgc0gfg3f5"; + url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.0/graalvm-community-jdk-21.0.0_macos-aarch64_bin.tar.gz"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/hashes.nix deleted file mode 100644 index b8d157a2399..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/hashes.nix +++ /dev/null @@ -1,391 +0,0 @@ -# Generated by pkgs/development/compilers/graalvm/community-edition/update.sh script -{ - "llvm-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "0h8xkvsixcwak5dymkj3jgjv11w3ivnd6d45v5pdbymd0m2ifia8"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "1zww45z7m3mvzg47fwc3jgqz3hkra220isf4ih8sv6kjg1jc4y14"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "13gg5hqg3pzn3qprl76i2wpmfagf5zw4w9hl18993ing21k5d0kq"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "133m9vg9rlp2xkndh3d6b8ybq8vwch99rj1b50xr6bz8r6306ara"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "0nz09idp8wawm3yinsplzvxhld8yav06l1nqj02gxrc1kxd5nsr1"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "1b5jsazjxkqlswl0h5yx7nx16zjjlvw967i6kypp4js80zg79s8m"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "0ngcm3ara7g1xz4kh515igpyrjhr1k5z9nf4vsaw4lpa5sqljv7z"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "1lr8kk82c3l9hx7wc5hqmpqfgvpk72xg1h07b6cgibry1bm6baj6"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "0mdiiag4hkddfgjamqn8y63s7xrfhq1wjvc7rw2sldykg7x0813i"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "058pzrd90xx4yi7mm2fvs2npqcdkb2nzhqfwfz5v202038igi61g"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "10rfz8ddq82zpf6cy2y0gx1bx0zhjzm3gwwdb1j7mll0hvwp84sg"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "0h5sf99ypwz0bafq4jm71ynszfgsrlnhmcjh0kl6sy5g1q8ij0jf"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/llvm-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "nodejs-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "0slzvbmxwa4a6m9c0hbdp8ryh9crfq7mv6y2j4hik5m457jq98cp"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "1ldivy5hmq2mxmzh40hglzngylahnzyqh9rav73nicl5mz8hk4l2"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "12chjbfz530kyp46bya8wcwciwlhp873hc6mvsjcf5swa3g7cwcl"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "1p1y52b4lky2fbkml5vqy7dn9vqzj19jq5f3c90mgsfk4c7xhi66"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "0j1gkpszklzm069bccm6wgq8iq0k41bcrca0kf8pbl2y11hwywpc"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "1gdkn0srkh8bn7c81f8s7ykd12pnz5r75rif76zhzdllhx63nn5v"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "1fbqc3a7i91as1sbwg2yr1zx0wz4jsaxcz9pfqy8a0z88m8vivbs"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "1swzkp0imcv30fxfwblgad57fvpsvhfpv93s8zj1lwrbarggl2y3"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "11kpgd6vxc8dm9z5ihkwbjbbspk53m3k9b550zf0zs3as9yjbp22"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "0n3hm8dd0ya86hxbxv07sfp22y02vhhzahkxk2j2162n9hcdmkwk"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "0xkjqcch22bm32mczj6xs8rzsl2n6vy9hmzwfy9a71w1kpkbjn3a"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "1yrh6iahai3aw7lpz89mrq782b1bysqqr9vkqdgcv00by1a7yd10"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/nodejs-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "wasm-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "1d67jm41psypkhpy77cb2l00smhni3pgkybwx79z7dzcyid7p2l1"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "1cg9zxyjirfl0afr9cppg2h17j8qdidi4llbal2g5w1p2v9zq78b"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "1vaqf3ilp3kg280adynww4l07sbcd5hih86akpd25rbxn45khz9s"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "19v7jqhvijmzzb0i9q6hbvrmqnmmzbyvai3il9f357qvv6r6lylb"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "0sfnsy0r4qf7ni9mh437dad1d8sidajcra2azsmy5qdmh091zhj5"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "1k7jqsh5wg7c7a6mhqgxghn20qwx70bky49p2a6imcsygnilqgim"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "0764d97mla5cii4iyvyb43v62dk8ff3plqjmdc69qqxx8mdzpwqv"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "1ip6ybm7p28bs2lifxqhq6fyvfm3wmacv6dqziyl2v7v7yl0iw4i"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "14d3djmacj81rj5sqf30z060iywndn6kw1n58kg12jvmgipbm3iq"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/wasm-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "js-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "1b8vnjjsa548c6j3dycxp57i9xmyvndiz2xhv7fm10izcplyspxq"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "1kcy3mjk908zs7f3k95awp6294cwr06hand4cbw1lsnfvp0qwhk7"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "1mk8qzdfsbjhfx0ds8rk9jm2g6g2lv8bppmnwpgrkm232c8i0dgw"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "0sq80a4nnvik560whgv5vwlsszi8z02idvpd92p0caf03bra9x2b"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "0fd160yxsi09m97z7vqh5kwf1g0p0hn4niy48glj9jhirfqzzw0c"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "0ghx41aldb30yjd0sdrfm89i7d6q0aca18bm7j1qyg9gnmkvxnmn"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "18g0xixzk45yrxv3zfs7qrdyj0b3ksp59jhbcis0vwy9gx8094wq"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "0cf4iivkniilvbqyniqxcz1qf49cs4lxi0axjsk9sz1zmxcq0bnk"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "03wxaim069rp69njh4gdchsm3b9s7crxihbk1arvz2cpgy9x1zvc"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "0ibcz6ivx068ndf45j9pghm8qwq287glqxf0xx08kjxnhms67p52"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "16q7whnvdrk8lb4fp96qr3p567kggyk9q5iqcn081qk8xjkbx0zv"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "13nx6kwcx100166ba4h7h97ravw4hyiqnvhszqbdffn54y0x5dwl"; - url = "https://github.com/graalvm/graaljs/releases/download/vm-22.3.1/js-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "python-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "1yl36x5svld7qnm3m6vmacm2n4d6l9vhdxhaypvlv2bbfbnym3c5"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "0ggx5rwz3qnnxgz407r8yx12556pcbirhnc44972l77r320rdmqc"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "1d0a7didgzgn45q7zg4iidmy2gckhaf796mbraqz5hjlig4vscr7"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "11c19a20v3ff83dxzs9hf1z89kh0qich41b03gx8mancf12jfwnl"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "0pga44whhvm98d8j2v2bpl9rkbvr9bv947rc4imlbf01cyxjwl71"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "0nwa1nrclh3p12cacp98wbx9p3zhs44b8srbr27vqgc10z78c1wz"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "0qnh8i9nazrv25jhn13wp7qqm9wwhcz4kpp2ygvsdmf9s3d2f5lf"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "0j13xvy9d19glipz4wdma2y02g0cnksg1iij4247fjhpqh0axkdz"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "0n7vx5lxbgpjvzv0y1fqsrk0j61vrzjm2ksh0lkdnz1zrr5mqgsh"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "1ny5664h7pibvskmm51mlxrxkbbj2dvxsv2yqbq6v51a57wm1yzn"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "01jjncx8jm1yrps2nj217vgcmjaqclmpb27rdp3qn7k64w5wzipg"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "00agpvp1yw884lm6d88d2l8629qpbpdlik2g621yz4vf9y7qki83"; - url = "https://github.com/graalvm/graalpython/releases/download/vm-22.3.1/python-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "native-image-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "0z9rbmci6yz7f7mqd3xzsxc5ih4hq72lyzqfchan7fr6mh38d6gw"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "03v20fc9famlnbrznpasnd5gdl5k9nl4dlj3pp6bad4y6l7rqnx5"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "13gg1zj7ivzrgwvyvsbwbrchryjqmi00km7jxajjjbr1k7jkdc5v"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "1yb7kpbs7hrzlysvrqjzgfz678p1hbg6237jzb35zmwdaczav51n"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "00fbyqsj4xj9ay8bki1190lf59bgrzvla8lzzq51p53a1bdrhhmv"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "1ayx0ag00i9868xz5xzc9fmwipkhz5qsldfmxk16cxp5vi71yhb1"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "1kaqvkbhj3iifq6asyrpy225a89y7klzbh7an1ycnvc2hvqkv4nz"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "09l7x4x8yanq55v6y6wpfx94mvsq1bpbnihknjc6dnq3vcrci77n"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "0dfddqgkz9b5akpgfw7sj4sl9wwknmh7qzk3pq2dpvf6892168wb"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "036w9dmdcs46kmjqr3086mg389fgr3h1zysavfq8cbh199x0ibia"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "1hvjfvcn878bzvi944v3x23sby72hbfvg5s3zzspyc37l5cdpqi3"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "1829fnyz62gcnj0664hl9w3vjyb3xfc84gpnblhhdx77c9y8gf6b"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/native-image-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; - "graalvm-ce" = { - "11-linux-aarch64" = { - sha256 = "1g4a3z9993pq52j3jf25pbcq9rvl8jz1yar8c859jw5chaf3ysml"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-linux-aarch64-22.3.1.tar.gz"; - }; - "17-linux-aarch64" = { - sha256 = "06288dwbql943nii74i9mngzb38h2nzrxzzgs346mgk2965gwm59"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-linux-aarch64-22.3.1.tar.gz"; - }; - "19-linux-aarch64" = { - sha256 = "03bakx00rl2c0hyvp5skfha57cijlpvmsnfgv2ancn3ypyqx1c4m"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-linux-aarch64-22.3.1.tar.gz"; - }; - "11-linux-amd64" = { - sha256 = "1f6xkdnxn6xsm24sqw24rsca72wm7v6q96m23l5fng5ym0jpfm2m"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-linux-amd64-22.3.1.tar.gz"; - }; - "17-linux-amd64" = { - sha256 = "0aci9i28rq5nk2qya9dcg5hxr3sgsbv7f5x8679hrjrqmrclmkrs"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-linux-amd64-22.3.1.tar.gz"; - }; - "19-linux-amd64" = { - sha256 = "0byxf2d4c3vwygjg5rbwwi22k1pv0yqjz03n8m67v2vsbs09vnbw"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-linux-amd64-22.3.1.tar.gz"; - }; - "11-darwin-aarch64" = { - sha256 = "0cbcm9d211m4b6g1bkpfksma917lzqkl4kx38vm1nrwjkll357y5"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-darwin-aarch64-22.3.1.tar.gz"; - }; - "17-darwin-aarch64" = { - sha256 = "1qbw3hlmqcrmd70xk56463scdxr50n66z2n3c24h68qlwwlpqc73"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-darwin-aarch64-22.3.1.tar.gz"; - }; - "19-darwin-aarch64" = { - sha256 = "09n9qz58lfwl2ag8s3n6dm11p5nnbz6gfralfyfj72wwfghcsckc"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-darwin-aarch64-22.3.1.tar.gz"; - }; - "11-darwin-amd64" = { - sha256 = "0a12rzf99x5l29f6bwm6myk18dgnrx2c9rwmii2pm864y7azlnij"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java11-darwin-amd64-22.3.1.tar.gz"; - }; - "17-darwin-amd64" = { - sha256 = "02lclv2j3v850izh84wdvksi3d3xmgpfl7x85vzifhgsvagm6sz4"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-darwin-amd64-22.3.1.tar.gz"; - }; - "19-darwin-amd64" = { - sha256 = "1b3r43jpgip12if1fld41qiigqgn32zqs6992ji206dxq6xwli23"; - url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-darwin-amd64-22.3.1.tar.gz"; - }; - }; - "ruby-installable-svm" = { - "11-linux-aarch64" = { - sha256 = "10wm1sq7smywy63mzlsbn21kzd65yaqj8yismpq8bz19h9skas7w"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-linux-aarch64-22.3.1.jar"; - }; - "17-linux-aarch64" = { - sha256 = "0kh1w49yp3kpfvhqw19bbx51ay1wgzq80gsrfqax4zm5ixz4wsbz"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-linux-aarch64-22.3.1.jar"; - }; - "19-linux-aarch64" = { - sha256 = "1c3xw9h85g3p5w12zrlvl036ay3218g5405hkh7qaah00affgx5l"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-linux-aarch64-22.3.1.jar"; - }; - "11-linux-amd64" = { - sha256 = "0avsawgfkqbgqc2hm8zmz37qg9ag3ddni3my8g73kvzfkghsdabh"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-linux-amd64-22.3.1.jar"; - }; - "17-linux-amd64" = { - sha256 = "1ib00pqdhzl24y97j16mm86qwrijqjnmhjmk3g5vdhyhh099vjp1"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-linux-amd64-22.3.1.jar"; - }; - "19-linux-amd64" = { - sha256 = "1j42y6gwf84xgjnawwqymxv4702gsy0vriwdfd09nbp600sjzga5"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-linux-amd64-22.3.1.jar"; - }; - "11-darwin-aarch64" = { - sha256 = "1im75qad89xa2nbl80csnwn56k6n11zv5g91xlkqq4xk300v1saj"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-darwin-aarch64-22.3.1.jar"; - }; - "17-darwin-aarch64" = { - sha256 = "1pfzsisf4sgzxmk3r1p4apzqkwipjpf8naly3v94i5v3b5gbnczx"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-darwin-aarch64-22.3.1.jar"; - }; - "19-darwin-aarch64" = { - sha256 = "0xysf43q0zpin3lmffmb3n7y4rsm1zm19ndys1vrn8szz4jcxpsq"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-darwin-aarch64-22.3.1.jar"; - }; - "11-darwin-amd64" = { - sha256 = "1jfls71y92hw09s869v2qw8pypgl1fciqz3m9zcd2602hikysq6c"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java11-darwin-amd64-22.3.1.jar"; - }; - "17-darwin-amd64" = { - sha256 = "03x2h4sw72l05xxg73xj9mzzkxffbjpv8hdi59rgxxljnz0ai6rx"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java17-darwin-amd64-22.3.1.jar"; - }; - "19-darwin-amd64" = { - sha256 = "02nkjlv306wyms7swibn5rz0w8sx6pwvh1lilgvv4xnbj7wps2q7"; - url = "https://github.com/oracle/truffleruby/releases/download/vm-22.3.1/ruby-installable-svm-java19-darwin-amd64-22.3.1.jar"; - }; - }; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix deleted file mode 100644 index 45cf50e90fe..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib -, stdenv -, graalvmCEPackages -, javaVersion -, src -, version -}: - -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "js-installable-svm"; - - graalvmPhases.installCheckPhase = '' - echo "Testing GraalJS" - echo '1 + 1' | $out/bin/js - ''; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix deleted file mode 100644 index 9fc8fb3db95..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib -, stdenv -, graalvmCEPackages -, javaVersion -, src -, version -}: - -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "llvm-installable-svm"; - - # TODO: improve this test - graalvmPhases.installCheckPhase = '' - echo "Testing llvm" - $out/bin/lli --help - ''; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix deleted file mode 100644 index 427c5ffef5b..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib -, stdenv -, graalvmCEPackages -, gcc -, glibc -, javaVersion -, musl -, src -, version -, writeShellScriptBin -, zlib -, useMusl ? false -, extraCLibs ? [ ] -}: - -assert useMusl -> stdenv.isLinux; -let - cLibs = [ glibc zlib.static ] - ++ lib.optionals (!useMusl) [ glibc.static ] - ++ lib.optionals useMusl [ musl ] - ++ extraCLibs; - # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc - musl-gcc = (writeShellScriptBin "${stdenv.hostPlatform.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"''); - binPath = lib.makeBinPath ([ gcc ] ++ lib.optionals useMusl [ musl-gcc ]); -in -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "native-image-installable-svm"; - - graalvmPhases.postInstall = lib.optionalString stdenv.isLinux '' - wrapProgram $out/bin/native-image \ - --prefix PATH : ${binPath} \ - ${lib.concatStringsSep " " - (map (l: "--add-flags '-H:CLibraryPath=${l}/lib'") cLibs)} - ''; - - graalvmPhases.installCheckPhase = '' - echo "Ahead-Of-Time compilation" - $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces HelloWorld - ./helloworld | fgrep 'Hello World' - - ${# --static is only available in Linux - lib.optionalString (stdenv.isLinux && !useMusl) '' - echo "Ahead-Of-Time compilation with -H:+StaticExecutableWithDynamicLibC" - $out/bin/native-image -H:+StaticExecutableWithDynamicLibC HelloWorld - ./helloworld | fgrep 'Hello World' - - echo "Ahead-Of-Time compilation with --static" - $out/bin/native-image --static HelloWorld - ./helloworld | fgrep 'Hello World' - ''} - - ${# --static is only available in Linux - lib.optionalString (stdenv.isLinux && useMusl) '' - echo "Ahead-Of-Time compilation with --static and --libc=musl" - $out/bin/native-image --static HelloWorld --libc=musl - ./helloworld | fgrep 'Hello World' - ''} - ''; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix deleted file mode 100644 index 022ac0a44fe..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib -, stdenv -, graalvmCEPackages -, graalvm-ce -, javaVersion -, src -, version -}: - -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "nodejs-installable-svm"; - - extraNativeBuildInputs = [ graalvm-ce ]; - - # TODO: improve test - graalvmPhases.installCheckPhase = '' - echo "Testing NodeJS" - $out/bin/npx --help - ''; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix deleted file mode 100644 index 43d6e85ef56..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib -, stdenv -, graalvmCEPackages -, javaVersion -, src -, version -}: - -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "python-installable-svm"; - - graalvmPhases.installCheckPhase = '' - echo "Testing GraalPython" - $out/bin/graalpy -c 'print(1 + 1)' - echo '1 + 1' | $out/bin/graalpy - ''; -} diff --git a/pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix index 30d0739b4b1..95e9c56fc23 100644 --- a/pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix +++ b/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix @@ -1,29 +1,30 @@ { lib , stdenv +, fetchurl , graalvmCEPackages -, llvm-installable-svm +, libyaml , openssl -, javaVersion -, src -, version }: -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "ruby-installable-svm"; +graalvmCEPackages.buildGraalvmProduct { + src = fetchurl (import ./hashes.nix).hashes.${stdenv.system}; + version = (import ./hashes.nix).version; + + product = "truffleruby"; extraBuildInputs = [ - llvm-installable-svm + libyaml openssl ]; preFixup = lib.optionalString stdenv.isLinux '' - patchelf $out/languages/ruby/lib/mri/openssl.so \ + patchelf $out/lib/mri/openssl.so \ --replace-needed libssl.so.10 libssl.so \ --replace-needed libcrypto.so.10 libcrypto.so ''; - graalvmPhases.installCheckPhase = '' + doInstallCheck = true; + installCheckPhase = '' echo "Testing TruffleRuby" # Fixup/silence warnings about wrong locale export LANG=C diff --git a/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix b/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix new file mode 100644 index 00000000000..addd6749e7d --- /dev/null +++ b/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix @@ -0,0 +1,22 @@ +# Generated by update.sh script +{ + "version" = "23.1.0"; + "hashes" = { + "aarch64-linux" = { + sha256 = "05q0xqm7qa9mw7v4kwyhbqsx27x19msf9rbbzq60dinp5724r721"; + url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.0/truffleruby-community-23.1.0-linux-aarch64.tar.gz"; + }; + "x86_64-linux" = { + sha256 = "0bfcqcax9424vsdqzr18mxkhi2wpzc4xaji98anm8mcjkyl1r89q"; + url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.0/truffleruby-community-23.1.0-linux-amd64.tar.gz"; + }; + "x86_64-darwin" = { + sha256 = "1yj9nk670hgh9104s1j207mqldagfvvvscj4bfgf3jlbcq5hvlhn"; + url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.0/truffleruby-community-23.1.0-macos-amd64.tar.gz"; + }; + "aarch64-darwin" = { + sha256 = "1nmqyn4vzwjsvq7dly8qn1xx973jg027xfbs988vf3nljnhkpq5l"; + url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.0/truffleruby-community-23.1.0-macos-aarch64.tar.gz"; + }; + }; +} diff --git a/pkgs/development/compilers/graalvm/community-edition/update.sh b/pkgs/development/compilers/graalvm/community-edition/update.sh index ad523fbd6b3..65d36514bcd 100755 --- a/pkgs/development/compilers/graalvm/community-edition/update.sh +++ b/pkgs/development/compilers/graalvm/community-edition/update.sh @@ -1,10 +1,23 @@ #!/usr/bin/env nix-shell #!nix-shell -p coreutils curl.out nix jq gnused -i bash +# Usage: +# ./update.sh [PRODUCT] +# +# Examples: +# $ ./update.sh graalvm-ce # will generate ./graalvm-ce/hashes.nix +# $ ./update.sh # same as above +# $ ./update.sh graalpy # will generate ./graalpy/hashes.nix +# +# Environment variables: +# FORCE=1 to force the update of a product (e.g.: skip up-to-date checks) +# VERSION=xx.xx will assume that xx.xx is the new version + set -eou pipefail cd "$(dirname "${BASH_SOURCE[0]}")" tmpfile="$(mktemp --suffix=.nix)" +readonly tmpfile trap 'rm -rf "$tmpfile"' EXIT @@ -16,92 +29,102 @@ verlte() { [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] } -readonly hashes_nix="hashes.nix" +readonly product="${1:-graalvm-ce}" +readonly hashes_nix="$product/hashes.nix" readonly nixpkgs=../../../../.. -readonly current_version="$(nix-instantiate "$nixpkgs" --eval --strict -A graalvm-ce.version --json | jq -r)" +mkdir -p "$product" + +declare -r -A update_urls=( + [graalvm-ce]="https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest" + [graaljs]="https://api.github.com/repos/oracle/graaljs/releases/latest" + [graalnodejs]="https://api.github.com/repos/oracle/graaljs/releases/latest" + [graalpy]="https://api.github.com/repos/oracle/graalpython/releases/latest" + [truffleruby]="https://api.github.com/repos/oracle/truffleruby/releases/latest" +) -if [[ -z "${1:-}" ]]; then - readonly gh_version="$(curl \ +current_version="$(nix-instantiate "$nixpkgs" --eval --strict -A "graalvmCEPackages.${product}.version" --json | jq -r)" +readonly current_version + +if [[ -z "${VERSION:-}" ]]; then + gh_version="$(curl \ ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ - -s https://api.github.com/repos/graalvm/graalvm-ce-builds/releases/latest | \ + -s "${update_urls[$product]}" | \ jq --raw-output .tag_name)" - readonly new_version="${gh_version//vm-/}" + new_version="${gh_version//jdk-/}" + new_version="${new_version//graal-/}" else - readonly new_version="$1" + new_version="$VERSION" fi +readonly new_version info "Current version: $current_version" info "New version: $new_version" if verlte "$new_version" "$current_version"; then - info "graalvm-ce $current_version is up-to-date." + info "$product $current_version is up-to-date." [[ -z "${FORCE:-}" ]] && exit 0 else - info "graalvm-ce $current_version is out-of-date. Updating..." + info "$product $current_version is out-of-date. Updating..." fi +# Make sure to get the `-community` versions! declare -r -A products_urls=( - [graalvm-ce]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/graalvm-ce-java@platform@-${new_version}.tar.gz" - [js-installable-svm]="https://github.com/graalvm/graaljs/releases/download/vm-${new_version}/js-installable-svm-java@platform@-${new_version}.jar" - [llvm-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/llvm-installable-svm-java@platform@-${new_version}.jar" - [native-image-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/native-image-installable-svm-java@platform@-${new_version}.jar" - [nodejs-installable-svm]="https://github.com/graalvm/graaljs/releases/download/vm-${new_version}/nodejs-installable-svm-java@platform@-${new_version}.jar" - [python-installable-svm]="https://github.com/graalvm/graalpython/releases/download/vm-${new_version}/python-installable-svm-java@platform@-${new_version}.jar" - [ruby-installable-svm]="https://github.com/oracle/truffleruby/releases/download/vm-${new_version}/ruby-installable-svm-java@platform@-${new_version}.jar" - [wasm-installable-svm]="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${new_version}/wasm-installable-svm-java@platform@-${new_version}.jar" + [graalvm-ce]="https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${new_version}/graalvm-community-jdk-${new_version}_@platform@_bin.tar.gz" + [graaljs]="https://github.com/oracle/graaljs/releases/download/graal-${new_version}/graaljs-community-${new_version}-@platform@.tar.gz" + [graalnodejs]="https://github.com/oracle/graaljs/releases/download/graal-${new_version}/graalnodejs-community-${new_version}-@platform@.tar.gz" + [graalpy]="https://github.com/oracle/graalpython/releases/download/graal-${new_version}/graalpy-community-${new_version}-@platform@.tar.gz" + [truffleruby]="https://github.com/oracle/truffleruby/releases/download/graal-${new_version}/truffleruby-community-${new_version}-@platform@.tar.gz" ) -readonly platforms=( - "11-linux-aarch64" - "17-linux-aarch64" - "19-linux-aarch64" - "11-linux-amd64" - "17-linux-amd64" - "19-linux-amd64" - "11-darwin-aarch64" - "17-darwin-aarch64" - "19-darwin-aarch64" - "11-darwin-amd64" - "17-darwin-amd64" - "19-darwin-amd64" -) +# Argh, this is really inconsistent... +if [[ "$product" == "graalvm-ce" ]]; then + declare -r -A platforms=( + [aarch64-linux]="linux-aarch64" + [x86_64-linux]="linux-x64" + [aarch64-darwin]="macos-aarch64" + [x86_64-darwin]="macos-x64" + ) +else + declare -r -A platforms=( + [aarch64-linux]="linux-aarch64" + [x86_64-linux]="linux-amd64" + [aarch64-darwin]="macos-aarch64" + [x86_64-darwin]="macos-amd64" + ) +fi -info "Generating '$hashes_nix' file for 'graalvm-ce' $new_version. This will take a while..." +info "Generating '$hashes_nix' file for '$product' $new_version. This will take a while..." # Indentation of `echo_file` function is on purpose to make it easier to visualize the output -echo_file "# Generated by $0 script" +echo_file "# Generated by $(basename $0) script" echo_file "{" -for product in "${!products_urls[@]}"; do - url="${products_urls["${product}"]}" -echo_file " \"$product\" = {" - for platform in "${platforms[@]}"; do - args=("${url//@platform@/$platform}") - # Get current hashes to skip derivations already in /nix/store to reuse cache when the version is the same - # e.g.: when adding a new product and running this script with FORCE=1 - if [[ "$current_version" == "$new_version" ]] && \ - previous_hash="$(nix-instantiate --eval "$hashes_nix" -A "$product.$platform.sha256" --json | jq -r)"; then - args+=("$previous_hash" "--type" "sha256") - else - info "Hash in '$product' for '$platform' not found. Re-downloading it..." - fi - if hash="$(nix-prefetch-url "${args[@]}")"; then -echo_file " \"$platform\" = {" +echo_file " \"version\" = \"$new_version\";" +url="${products_urls["${product}"]}" +echo_file " \"hashes\" = {" +for nix_platform in "${!platforms[@]}"; do + product_platform="${platforms[$nix_platform]}" + args=("${url//@platform@/$product_platform}") + # Get current hashes to skip derivations already in /nix/store to reuse cache when the version is the same + # e.g.: when adding a new product and running this script with FORCE=1 + if [[ "$current_version" == "$new_version" ]] && \ + previous_hash="$(nix-instantiate --eval "$hashes_nix" -A "hashes.$nix_platform.sha256" --json | jq -r)"; then + args+=("$previous_hash" "--type" "sha256") + else + info "Hash in '$product' for '$nix_platform' not found. Re-downloading it..." + fi + if hash="$(nix-prefetch-url "${args[@]}")"; then +echo_file " \"$nix_platform\" = {" echo_file " sha256 = \"$hash\";" -echo_file " url = \"${url//@platform@/${platform}}\";" +echo_file " url = \"${url//@platform@/${product_platform}}\";" echo_file " };" - else - info "Error while downloading '$product' for '$platform'. Skipping it..." - fi - done -echo_file " };" + else + info "Error while downloading '$product' for '$nix_platform'. Skipping it..." + fi done +echo_file " };" echo_file "}" -info "Updating graalvm-ce version..." -# update-source-version does not work here since it expects src attribute -sed "s|$current_version|$new_version|" -i default.nix - -info "Moving the temporary file to hashes.nix" +info "Moving the temporary file to '$hashes_nix'" mv "$tmpfile" "$hashes_nix" info "Done!" diff --git a/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix b/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix deleted file mode 100644 index 9a5bef7c1e3..00000000000 --- a/pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ lib -, stdenv -, graalvm-ce -, graalvmCEPackages -, javaVersion -, src -, version -}: - -graalvmCEPackages.buildGraalvmProduct rec { - inherit src javaVersion version; - product = "wasm-installable-svm"; - - # TODO: improve this test - graalvmPhases.installCheckPhase = '' - echo "Testing wasm" - $out/bin/wasm --help - ''; - - # Not supported in aarch64-darwin yet as GraalVM 22.3.1 release - meta.platforms = builtins.filter (p: p != "aarch64-darwin") graalvm-ce.meta.platforms; -} diff --git a/pkgs/development/interpreters/babashka/default.nix b/pkgs/development/interpreters/babashka/default.nix index b7d78892103..1ae30244b20 100644 --- a/pkgs/development/interpreters/babashka/default.nix +++ b/pkgs/development/interpreters/babashka/default.nix @@ -15,7 +15,7 @@ buildGraalvmNativeImage rec { sha256 = "sha256-O3pLELYmuuB+Bf1vHTWQ+u7Ymi3qYiMRpCwvEq+GeBQ="; }; - graalvmDrv = graalvmCEPackages.graalvm19-ce; + graalvmDrv = graalvmCEPackages.graalvm-ce; executable = "bb"; @@ -38,7 +38,7 @@ buildGraalvmNativeImage rec { # As of v1.2.174, this will remove references to ${graalvmDrv}/conf/chronology, # not sure the implications of this but this file is not available in - # graalvm19-ce anyway. + # graalvm-ce anyway. postInstall = '' remove-references-to -t ${graalvmDrv} $out/bin/${executable} ''; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index ab476185df7..792f15f7bb4 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -687,11 +687,9 @@ mapAliases ({ gpgstats = throw "gpgstats has been removed: upstream is gone"; # Added 2022-02-06 gpshell = throw "gpshell has been removed, because it was unmaintained in nixpkgs"; # added 2021-12-17 - graalvm11 = graalvm11-ce; - graalvm8-ce = throw "graalvm8-ce has been removed by upstream"; # Added 2021-10-19 - graalvm8 = throw "graalvm8-ce has been removed by upstream"; # Added 2021-10-19 - graalvm8-ee = throw "graalvm8-ee has been removed because it is unmaintained"; # Added 2022-04-15 - graalvm11-ee = throw "graalvm11-ee has been removed because it is unmaintained"; # Added 2022-04-15 + graalvm11-ce = throw "graalvm11-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26 + graalvm17-ce = throw "graalvm17-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26 + graalvm19-ce = throw "graalvm19-ce has been removed because upstream dropped support to different JDK versions for each GraalVM release. Please use graalvm-ce instead"; # Added 2023-09-26 gradio = throw "gradio has been removed because it is unmaintained, use shortwave instead"; # Added 2022-06-03 gradle_4 = throw "gradle_4 has been removed because it's no longer being updated"; # Added 2023-01-17 gradle_5 = throw "gradle_5 has been removed because it's no longer being updated"; # Added 2023-01-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fdb6e6ff0cf..b808098b0a8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8634,7 +8634,7 @@ with pkgs; }; dapl-native = callPackage ../development/interpreters/dzaima-apl { buildNativeImage = true; - jdk = graalvm11-ce; + jdk = graalvm-ce; }; gnucap = callPackage ../applications/science/electronics/gnucap { }; @@ -16471,10 +16471,7 @@ with pkgs; graalvmCEPackages = recurseIntoAttrs (callPackage ../development/compilers/graalvm/community-edition { }); - graalvm-ce = graalvm11-ce; - graalvm11-ce = graalvmCEPackages.graalvm11-ce; - graalvm17-ce = graalvmCEPackages.graalvm17-ce; - graalvm19-ce = graalvmCEPackages.graalvm19-ce; + graalvm-ce = graalvmCEPackages.graalvm-ce; buildGraalvmNativeImage = (callPackage ../build-support/build-graalvm-native-image { graalvmDrv = graalvm-ce; }).override; @@ -17762,7 +17759,7 @@ with pkgs; }; dbqn-native = callPackage ../development/interpreters/bqn/dzaima-bqn { buildNativeImage = true; - jdk = graalvm11-ce; + jdk = graalvm-ce; }; chibi = callPackage ../development/interpreters/chibi { }; |