graalvmXX-ce: remove Ruby/Python/WASM support

Those additional languages does not seem to really have much usage
(e.g.: none in nixpkgs). For example, Ruby is pretty much broken for all
environments for quite sometime already, however nobody seemed to border
enough to fix it. They also add a good amount of size to the derivation.

So let's remove them. It should be really easy if someone still cares
for them and want to add them back on their own system: just use the
`mkGraal` function (that we export) to generate their own version of
GraalVM with all extra features they want.
This commit is contained in:
Thiago Kenji Okada 2022-04-15 20:08:43 +01:00
parent 782d03bca7
commit 399ed1f1bd
5 changed files with 52 additions and 116 deletions

View File

@ -18,11 +18,9 @@ let
graalvm11-ce-dev-version = "22.2.0-dev-20220401_1942";
graalvm17-ce-dev-version = "22.2.0-dev-20220401_1942";
commonProducts = [
products = [
"graalvm-ce"
"native-image-installable-svm"
"ruby-installable-svm"
"wasm-installable-svm"
];
in
@ -32,24 +30,21 @@ in
graalvm11-ce = mkGraal rec {
config = {
x86_64-darwin = {
inherit products;
arch = "darwin-amd64";
products = commonProducts ++ [ "python-installable-svm" ];
};
x86_64-linux = {
inherit products;
arch = "linux-amd64";
products = commonProducts ++ [ "python-installable-svm" ];
};
aarch64-darwin = {
inherit products;
arch = "darwin-aarch64";
products = [
"graalvm-ce"
"native-image-installable-svm"
];
version = graalvm11-ce-dev-version;
};
aarch64-linux = {
inherit products;
arch = "linux-aarch64";
products = commonProducts;
};
};
defaultVersion = graalvm11-ce-release-version;
@ -65,19 +60,16 @@ in
graalvm17-ce = mkGraal rec {
config = {
x86_64-darwin = {
inherit products;
arch = "darwin-amd64";
products = commonProducts ++ [ "python-installable-svm" ];
};
x86_64-linux = {
inherit products;
arch = "linux-amd64";
products = commonProducts ++ [ "python-installable-svm" ];
};
aarch64-darwin = {
inherit products;
arch = "darwin-aarch64";
products = [
"graalvm-ce"
"native-image-installable-svm"
];
version = graalvm17-ce-dev-version;
};
};

View File

@ -1,12 +1,12 @@
{
"darwin-aarch64": {
"graalvm-ce|java11|22.2.0-dev-20220401_1942": {
"sha256": "c83dee740ae148486598759e44a717b09d8124e4ea50f9da1e7d49d016572b89",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/graalvm-ce-java11-darwin-aarch64-dev.tar.gz"
"graalvm-ce|java11|22.2.0-dev-20220414_2112": {
"sha256": "7d1d39a7cc2579112e745943fa5b557405b501f5c3c3fde441f9a31c7627d18d",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220414_2112/graalvm-ce-java11-darwin-aarch64-dev.tar.gz"
},
"native-image-installable-svm|java11|22.2.0-dev-20220401_1942": {
"sha256": "661311ae26bfd6c46360b9e65aabe9361dc5cd05878a404343adf16925ae78fa",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/native-image-installable-svm-java11-darwin-aarch64-dev.jar"
"native-image-installable-svm|java11|22.2.0-dev-20220414_2112": {
"sha256": "5ec82588bf493c38656ca7c31fff276342ce1cbadee41309ae7a3486f56f7ba7",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220414_2112/native-image-installable-svm-java11-darwin-aarch64-dev.jar"
}
},
"darwin-amd64": {
@ -17,18 +17,6 @@
"native-image-installable-svm|java11|22.0.0.2": {
"sha256": "03c27de6cce61ee8073e89252212457f3fbac2c0bc9bfa4acbff12176476c176",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
},
"python-installable-svm|java11|22.0.0.2": {
"sha256": "67ee2f1cc10b0189e359344c31b22f423e636ff4ec2dd7d9437c3eb0ef54e601",
"url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
},
"ruby-installable-svm|java11|22.0.0.2": {
"sha256": "a25c0099a21ca1ca9904dd3acdeef509f67a13b96c6135b6de199e9805330df9",
"url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
},
"wasm-installable-svm|java11|22.0.0.2": {
"sha256": "d74c210a8a87b8eb0c4d18a65fde6f2c03ebc94d9bf7ed87bbb9cacc460006d7",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-darwin-amd64-22.0.0.2.jar"
}
},
"linux-aarch64": {
@ -39,14 +27,6 @@
"native-image-installable-svm|java11|22.0.0.2": {
"sha256": "51d41e890a5aabf8e7b9d4f4e0f88206ee70a261f7dbb0315d51770ab8f3009e",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
},
"ruby-installable-svm|java11|22.0.0.2": {
"sha256": "e0fb582a9c6b4167e7dc267c58ca1968bd1c471b3bc5c56061b436f175486d80",
"url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
},
"wasm-installable-svm|java11|22.0.0.2": {
"sha256": "a48470ae391c75cb2805b7fe27cde2c925c0466fdbc0623dfbb67c54f19dbf8c",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-linux-aarch64-22.0.0.2.jar"
}
},
"linux-amd64": {
@ -57,18 +37,6 @@
"native-image-installable-svm|java11|22.0.0.2": {
"sha256": "8504a3441f5b28b8fd625f676674a9216f082ae63a4e30d43930c80f9672e71d",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java11-linux-amd64-22.0.0.2.jar"
},
"python-installable-svm|java11|22.0.0.2": {
"sha256": "2f01d1bbc2ed2c507952d8ceaab1cb2176fc67e2d8c4b3bf5864e8d930c60c55",
"url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java11-linux-amd64-22.0.0.2.jar"
},
"ruby-installable-svm|java11|22.0.0.2": {
"sha256": "e90f7ebc13b6c1f8e3f98881bb4fe2336870744174b2b6d41dc672d15f0b9a40",
"url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java11-linux-amd64-22.0.0.2.jar"
},
"wasm-installable-svm|java11|22.0.0.2": {
"sha256": "c0fdfc40374b70f6f1597dd21660535c813dc5c3948c8a6ea9559a20f4d3fb5e",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java11-linux-amd64-22.0.0.2.jar"
}
}
}

View File

@ -1,12 +1,12 @@
{
"darwin-aarch64": {
"graalvm-ce|java17|22.2.0-dev-20220401_1942": {
"sha256": "f0409c59adbce62da7be46ab7d0e01abe5c080ef97d0b555e6c773f94dbfdecf",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/graalvm-ce-java17-darwin-aarch64-dev.tar.gz"
"graalvm-ce|java17|22.2.0-dev-20220414_2112": {
"sha256": "1ae8991d95814945d33cf8758a1e7072c48660680d1d90ec5629671e25f99344",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220414_2112/graalvm-ce-java17-darwin-aarch64-dev.tar.gz"
},
"native-image-installable-svm|java17|22.2.0-dev-20220401_1942": {
"sha256": "3770dc4810d7ebae8f9ca2212e91112629096a964d3caea1667b0aaf5f70c1e0",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220401_1942/native-image-installable-svm-java17-darwin-aarch64-dev.jar"
"native-image-installable-svm|java17|22.2.0-dev-20220414_2112": {
"sha256": "8a35491ea5487e755c087072fc827d81ec37a23075dcb29850e6f6cd5ff9630f",
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220414_2112/native-image-installable-svm-java17-darwin-aarch64-dev.jar"
}
},
"darwin-amd64": {
@ -17,18 +17,6 @@
"native-image-installable-svm|java17|22.0.0.2": {
"sha256": "007fa742cd139d447f83d776b6d78e717c9df11d56a61061a5937547c20028b7",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
},
"python-installable-svm|java17|22.0.0.2": {
"sha256": "af887b0304d5ec98fab1be2cd1fca2aa3b10e84e823142a7f274560b1e0ea7c1",
"url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
},
"ruby-installable-svm|java17|22.0.0.2": {
"sha256": "fc5eb6f833136ae3fda61f46fe0af66a8454ca2f803ca35eaff7336521cb468d",
"url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
},
"wasm-installable-svm|java17|22.0.0.2": {
"sha256": "b76e6d872ce07ca9facd5b997dbb6e557ba72aa369ddd5f1664431bd11b98796",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java17-darwin-amd64-22.0.0.2.jar"
}
},
"linux-amd64": {
@ -39,18 +27,6 @@
"native-image-installable-svm|java17|22.0.0.2": {
"sha256": "8c25f650d58c2649c97061cb806dfaec9e685d5d2b80afc7cf72fe61d6891831",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-linux-amd64-22.0.0.2.jar"
},
"python-installable-svm|java17|22.0.0.2": {
"sha256": "b3b78a15bd29b4eaaf0f2607e21181ca2a5b41b38ba43a3ff2656c2f6effda8a",
"url": "https://github.com/graalvm/graalpython/releases/download/vm-22.0.0.2/python-installable-svm-java17-linux-amd64-22.0.0.2.jar"
},
"ruby-installable-svm|java17|22.0.0.2": {
"sha256": "d86c9ad50cbed980fa69d69b2eccd47d31880d8c55553483f59ce9eda15628bd",
"url": "https://github.com/oracle/truffleruby/releases/download/vm-22.0.0.2/ruby-installable-svm-java17-linux-amd64-22.0.0.2.jar"
},
"wasm-installable-svm|java17|22.0.0.2": {
"sha256": "7f7e51e4a24384b3dd960c12ab9b05b1fea58a0457d6b80e3797228fab93c0bd",
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/wasm-installable-svm-java17-linux-amd64-22.0.0.2.jar"
}
}
}

View File

@ -59,6 +59,11 @@ let
(writeShellScriptBin "${stdenv.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'')
]);
withNativeImageSvm = builtins.any (p: p == "native-image-installable-svm") platform.products;
withRubySvm = builtins.any (p: p == "ruby-installable-svm") platform.products;
withPythonSvm = builtins.any (p: p == "python-installable-svm") platform.products;
withWasmSvm = builtins.any (p: p == "wasm-installable-svm") platform.products;
graalvmXXX-ce = stdenv.mkDerivation rec {
inherit version;
pname = name;
@ -69,7 +74,6 @@ let
alsa-lib # libasound.so wanted by lib/libjsound.so
fontconfig
freetype
openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
stdenv.cc.cc.lib # libstdc++.so.6
xorg.libX11
xorg.libXext
@ -77,6 +81,8 @@ let
xorg.libXrender
xorg.libXtst
zlib
] ++ lib.optionals withRubySvm [
openssl # libssl.so wanted by languages/ruby/lib/mri/openssl.so
];
nativeBuildInputs = [ unzip perl makeWrapper ]
@ -172,7 +178,7 @@ let
# Workaround for libssl.so.10 wanted by TruffleRuby
# Resulting TruffleRuby cannot use `openssl` library.
autoPatchelfIgnoreMissingDeps = stdenv.isDarwin;
autoPatchelfIgnoreMissingDeps = withRubySvm && stdenv.isDarwin;
preFixup = lib.optionalString (stdenv.isLinux) ''
# We cannot use -exec since wrapProgram is a function but not a
@ -191,10 +197,14 @@ let
find "$out" -name libfontmanager.so -exec \
patchelf --add-needed libfontconfig.so {} \;
# Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby
patchelf $out/languages/ruby/lib/mri/openssl.so \
--replace-needed libssl.so.10 libssl.so \
--replace-needed libcrypto.so.10 libcrypto.so
${
lib.optionalString withRubySvm ''
# Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby
patchelf $out/languages/ruby/lib/mri/openssl.so \
--replace-needed libssl.so.10 libssl.so \
--replace-needed libcrypto.so.10 libcrypto.so
''
}
'';
# $out/bin/native-image needs zlib to build native executables.
@ -222,7 +232,7 @@ let
$out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World'
${# --static flag doesn't work for darwin
lib.optionalString (stdenv.isLinux && !useMusl) ''
lib.optionalString (withNativeImageSvm && stdenv.isLinux && !useMusl) ''
echo "Ahead-Of-Time compilation"
$out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld
./helloworld | fgrep 'Hello World'
@ -234,49 +244,38 @@ let
}
${# --static flag doesn't work for darwin
lib.optionalString (stdenv.isLinux && useMusl) ''
lib.optionalString (withNativeImageSvm && stdenv.isLinux && useMusl) ''
echo "Ahead-Of-Time compilation with --static and --libc=musl"
$out/bin/native-image --no-server --libc=musl --static HelloWorld
./helloworld | fgrep 'Hello World'
''
}
${# TODO: Doesn't work on MacOS, we have this error:
# "Launching JShell execution engine threw: Operation not permitted (Bind failed)"
lib.optionalString (stdenv.isLinux) ''
${
lib.optionalString withWasmSvm ''
echo "Testing Jshell"
echo '1 + 1' | $out/bin/jshell
''
}
${
lib.optionalString (builtins.any (a: a == "python-installable-svm") platform.products) ''
lib.optionalString withPythonSvm ''
echo "Testing GraalPython"
$out/bin/graalpython -c 'print(1 + 1)'
echo '1 + 1' | $out/bin/graalpython
''
}
echo "Testing TruffleRuby"
${
lib.optionalString (builtins.any (a: a == "ruby-installable-svm") platform.products) ''
# Hide warnings about wrong locale
export LANG=C
export LC_ALL=C
$out/bin/ruby -e 'puts(1 + 1)'
''
}
${# FIXME: irb is broken in all platforms
# TODO: `irb` on MacOS gives an error saying "Could not find OpenSSL
# headers, install via Homebrew or MacPorts or set OPENSSL_PREFIX", even
# though `openssl` is in `propagatedBuildInputs`. For more details see:
# https://github.com/NixOS/nixpkgs/pull/105815
# TODO: "truffleruby: an internal exception escaped out of the interpreter"
# error on linux-aarch64
# TODO: "core/kernel.rb:234:in `gem_original_require':
# /nix/store/wlc5xalzj2ip1l83siqw8ac5fjd52ngm-graalvm11-ce/languages/llvm/native/lib:
# cannot read file data: Is a directory (RuntimeError)" error on linux-amd64
lib.optionalString false ''
lib.optionalString withRubySvm ''
echo "Testing TruffleRuby"
# Hide warnings about wrong locale
export LANG=C
export LC_ALL=C
$out/bin/ruby -e 'puts(1 + 1)'
''
# FIXME: irb is broken in all platforms
+ lib.optionalString false ''
echo '1 + 1' | $out/bin/irb
''
}

View File

@ -8,6 +8,7 @@
, writeShellScript
, jq
, gnused
, forceUpdate ? false
}:
/*
@ -199,7 +200,7 @@ let
*/
updateScriptText = newVersion: currentVersion:
if isNew newVersion currentVersion
if (forceUpdate || (isNew newVersion currentVersion))
then
let
versionKey = versionKeyInDefaultNix currentVersion;