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:
parent
782d03bca7
commit
399ed1f1bd
@ -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;
|
||||
};
|
||||
};
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
''
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user