summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorThiago Kenji Okada <thiagokokada@gmail.com>2023-09-29 11:12:22 +0100
committerGitHub <noreply@github.com>2023-09-29 11:12:22 +0100
commit88c5afe1535bc94ee275432ac5fcf50dd6579581 (patch)
treee7433ba407abdb2a1580cef8be9167b89d0a9158 /pkgs
parentbd9b686c0168041aea600222be0805a0de6e6ab8 (diff)
parent6a8719229c23824e20887a383f1ae0b9a2415ea3 (diff)
downloadnixpkgs-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')
-rw-r--r--pkgs/build-support/build-graalvm-native-image/default.nix2
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix132
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix78
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/default.nix233
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graaljs/default.nix17
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graaljs/hashes.nix22
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalnodejs/default.nix17
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalnodejs/hashes.nix22
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalpy/default.nix18
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix22
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalvm-ce/default.nix12
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix22
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/hashes.nix391
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/js-installable-svm.nix17
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/llvm-installable-svm.nix18
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/native-image-installable-svm.nix60
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/nodejs-installable-svm.nix21
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/python-installable-svm.nix18
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix (renamed from pkgs/development/compilers/graalvm/community-edition/ruby-installable-svm.nix)21
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix22
-rwxr-xr-xpkgs/development/compilers/graalvm/community-edition/update.sh141
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/wasm-installable-svm.nix22
-rw-r--r--pkgs/development/interpreters/babashka/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix8
-rw-r--r--pkgs/top-level/all-packages.nix9
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 { };