Unverified Commit 3a1c146e authored by Thiago Kenji Okada's avatar Thiago Kenji Okada Committed by GitHub
Browse files

Merge pull request #216228 from thiagokokada/graalvm-ce-add-more-products

graalvmCEPackages.{js,python,wasm,ruby,llvm}-installable-svm: init at 22.3.1
parents f28f1a1c cce466a5
Loading
Loading
Loading
Loading
+39 −11
Original line number Diff line number Diff line
@@ -4,29 +4,51 @@
, autoPatchelfHook
, cairo
, cups
, darwin
, fontconfig
, Foundation
, glib
, gtk3
, gtkSupport ? stdenv.isLinux
, makeWrapper
, setJavaClassPath
, unzip
, xorg
, zlib
}:
{ javaVersion
  # extra params
, javaVersion
, meta ? { }
, products ? [ ]
, ... } @ args:
, gtkSupport ? stdenv.isLinux
, ...
} @ args:

let
  extraArgs = builtins.removeAttrs args [
    "lib"
    "stdenv"
    "alsa-lib"
    "autoPatchelfHook"
    "cairo"
    "cups"
    "darwin"
    "fontconfig"
    "glib"
    "gtk3"
    "makeWrapper"
    "setJavaClassPath"
    "unzip"
    "xorg"
    "zlib"
    "javaVersion"
    "meta"
    "products"
    "gtkSupport"
  ];
  runtimeLibraryPath = lib.makeLibraryPath
    ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
  mapProducts = key: default: (map (p: p.${key} or default) products);
  mapProducts = key: default: (map (p: p.graalvmPhases.${key} or default) products);
  concatProducts = key: lib.concatStringsSep "\n" (mapProducts key "");

  graalvmXXX-ce = stdenv.mkDerivation (args // {
  graalvmXXX-ce = stdenv.mkDerivation ({
    pname = "graalvm${javaVersion}-ce";

    unpackPhase = ''
@@ -71,7 +93,7 @@ let
      ++ lib.optional stdenv.isLinux autoPatchelfHook;

    propagatedBuildInputs = [ setJavaClassPath zlib ]
      ++ lib.optional stdenv.isDarwin Foundation;
      ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation;

    buildInputs = lib.optionals stdenv.isLinux [
      alsa-lib # libasound.so wanted by lib/libjsound.so
@@ -109,6 +131,12 @@ let
    installCheckPhase = ''
      runHook preInstallCheck

      ${# broken in darwin
        lib.optionalString stdenv.isLinux ''
        echo "Testing Jshell"
        echo '1 + 1' | $out/bin/jshell
      ''}

      echo ${
        lib.escapeShellArg ''
          public class HelloWorld {
@@ -136,7 +164,6 @@ let
    };

    meta = with lib; ({
      inherit platforms;
      homepage = "https://www.graalvm.org/";
      description = "High-Performance Polyglot VM";
      license = with licenses; [ upl gpl2Classpath bsd3 ];
@@ -144,5 +171,6 @@ let
      mainProgram = "java";
      maintainers = with maintainers; teams.graalvm-ce.members ++ [ ];
    } // meta);
  });
in graalvmXXX-ce
  } // extraArgs);
in
graalvmXXX-ce
+38 −16
Original line number Diff line number Diff line
{ lib
, stdenv
, autoPatchelfHook
, graalvm-ce
, makeWrapper
, perl
, unzip
, zlib
}:
{ product
  # extra params
, product
, javaVersion
, extraNativeBuildInputs ? [ ]
, extraBuildInputs ? [ ]
, extraNativeBuildInputs ? [ ]
, graalvmPhases ? { }
, meta ? { }
, passthru ? { }
, ... } @ args:
, ...
} @ args:

stdenv.mkDerivation (args // {
let
  extraArgs = builtins.removeAttrs args [
    "lib"
    "stdenv"
    "autoPatchelfHook"
    "graalvm-ce"
    "makeWrapper"
    "perl"
    "unzip"
    "zlib"
    "product"
    "javaVersion"
    "extraBuildInputs"
    "extraNativeBuildInputs"
    "graalvmPhases"
    "meta"
    "passthru"
  ];
in
stdenv.mkDerivation ({
  pname = "${product}-java${javaVersion}";

  nativeBuildInputs = [ perl unzip makeWrapper ]
@@ -55,19 +77,19 @@ stdenv.mkDerivation (args // {
  dontInstall = true;
  dontBuild = true;
  dontStrip = true;
  # installCheckPhase is going to run in GraalVM main derivation (see buildGraalvm.nix)
  # to make sure that it has everything it needs to run correctly.
  # Other hooks like fixupPhase/installPhase are also going to run there for the
  # same reason.
  doInstallCheck = false;

  passthru = { inherit product; } // passthru;
  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;

  meta = with lib; ({
    homepage = "https://www.graalvm.org/";
    inherit (graalvm-ce.meta) homepage license sourceProvenance maintainers platforms;
    description = "High-Performance Polyglot VM (Product: ${product})";
    license = with licenses; [ upl gpl2Classpath bsd3 ];
    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
    maintainers = with maintainers; teams.graalvm-ce.members ++ [ ];
  } // meta);
})
} // extraArgs)
+90 −4
Original line number Diff line number Diff line
@@ -2,12 +2,11 @@
, stdenv
, callPackage
, fetchurl
, Foundation
}:

let
  buildGraalvm = callPackage ./buildGraalvm.nix { inherit Foundation; };
  buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix { };
  buildGraalvm = callPackage ./buildGraalvm.nix;
  buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix;
  javaPlatform = {
    "aarch64-linux" = "linux-aarch64";
    "x86_64-linux" = "linux-amd64";
@@ -16,7 +15,8 @@ let
  };
  javaPlatformVersion = javaVersion:
    "${javaVersion}-${javaPlatform.${stdenv.system} or (throw "Unsupported platform: ${stdenv.system}")}";
  source = product: javaVersion: (import ./hashes.nix).${product}.${javaPlatformVersion javaVersion};
  source = product: javaVersion: (import ./hashes.nix).${product}.${javaPlatformVersion javaVersion}
    or (throw "Unsupported product combination: product=${product} java=${javaVersion} system=${stdenv.system}");

in
rec {
@@ -30,12 +30,55 @@ rec {
    products = [ native-image-installable-svm-java11 ];
  };

  # Mostly available for testing, not to be exposed at the top level
  graalvm11-ce-full = graalvm11-ce.override {
    products = [
      js-installable-svm-java11
      llvm-installable-svm-java11
      native-image-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);
  };

  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);
  };

  graalvm17-ce = buildGraalvm rec {
    version = "22.3.1";
    javaVersion = "17";
@@ -44,9 +87,52 @@ rec {
    products = [ native-image-installable-svm-java17 ];
  };

  # Mostly available for testing, not to be exposed at the top level
  graalvm17-ce-full = graalvm17-ce.override {
    products = [
      js-installable-svm-java17
      llvm-installable-svm-java17
      native-image-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);
  };

  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);
  };
}
+162 −0
Original line number Diff line number Diff line
# 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";
    };
    "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";
    };
    "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";
    };
    "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";
    };
  };
  "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";
    };
    "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";
    };
    "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";
    };
  };
  "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";
    };
    "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";
    };
    "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";
    };
    "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";
    };
  };
  "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";
    };
    "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";
    };
    "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";
    };
    "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";
    };
  };
  "native-image-installable-svm" = {
    "11-linux-aarch64" = {
      sha256 = "0z9rbmci6yz7f7mqd3xzsxc5ih4hq72lyzqfchan7fr6mh38d6gw";
@@ -68,4 +196,38 @@
      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java17-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";
    };
    "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";
    };
    "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";
    };
    "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";
    };
  };
}
+18 −0
Original line number Diff line number Diff line
{ lib
, stdenv
, graalvm-ce
, 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
  '';
}
Loading