Merge pull request #168816 from thiagokokada/graalvm-cleanup
graalvmXX-ee: remove; graalvmXX-ce: remove Ruby/Python/WASM support
This commit is contained in:
commit
113a29b107
11 changed files with 83 additions and 307 deletions
|
@ -1518,6 +1518,17 @@
|
|||
<literal>pkgs.cosmoc</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.graalvmXX-ce</literal> packages no longer
|
||||
provide support for Python/Ruby/WASM, instead focusing only in
|
||||
Java and Native Image Support. If you need to add support
|
||||
back, please see the
|
||||
<literal>pkgs.graalvmCEPackages.mkGraal</literal> function to
|
||||
create your own customized version of GraalVM with support for
|
||||
what you need.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.05-notable-changes">
|
||||
|
|
|
@ -554,6 +554,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- `pkgs.cosmopolitan` no longer provides the `cosmoc` command. It has been moved to `pkgs.cosmoc`.
|
||||
|
||||
- `pkgs.graalvmXX-ce` packages no longer provide support for Python/Ruby/WASM, instead focusing only in Java and Native Image Support. If you need to add support back, please see the `pkgs.graalvmCEPackages.mkGraal` function to create your own customized version of GraalVM with support for what you need.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Other Notable Changes {#sec-release-22.05-notable-changes}
|
||||
|
|
|
@ -55,5 +55,7 @@ stdenv.mkDerivation (args // {
|
|||
platforms = graalvmDrv.meta.platforms;
|
||||
# default to executable name
|
||||
mainProgram = executable;
|
||||
# need to have native-image-installable-svm available
|
||||
broken = !(builtins.elem "native-image-installable-svm" graalvmDrv.products);
|
||||
} // meta;
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
|
@ -57,29 +52,25 @@ in
|
|||
platforms = builtins.attrNames config;
|
||||
};
|
||||
|
||||
# TODO: fix aarch64-linux, failing during Native Image compilation
|
||||
# "Caused by: java.io.IOException: Cannot run program
|
||||
# "/nix/store/1q1mif7h3lgxdaxg6j39hli5azikrfla-gcc-wrapper-9.3.0/bin/gcc" (in
|
||||
# directory"/tmp/SVM-4194439592488143713"): error=0, Failed to exec spawn
|
||||
# helper: pid: 19865, exit value: 1"
|
||||
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;
|
||||
};
|
||||
aarch64-linux = {
|
||||
inherit products;
|
||||
arch = "linux-aarch64";
|
||||
};
|
||||
};
|
||||
defaultVersion = graalvm17-ce-release-version;
|
||||
javaVersion = "17";
|
||||
|
|
|
@ -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-20220415_1945": {
|
||||
"sha256": "1dbb0e0b9c85391ea6f1a0bd95ae252a396152d83e3a0e79cffd988144259e68",
|
||||
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/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-20220415_1945": {
|
||||
"sha256": "029499c011ceb1a4560957db651805325a201488b5f0b7467f007c7385d004e2",
|
||||
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/native-image-installable-svm-java17-darwin-aarch64-dev.jar"
|
||||
}
|
||||
},
|
||||
"darwin-amd64": {
|
||||
|
@ -17,18 +17,16 @@
|
|||
"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"
|
||||
}
|
||||
},
|
||||
"linux-aarch64": {
|
||||
"graalvm-ce|java17|22.0.0.2": {
|
||||
"sha256": "c7d78387d2a144944f26773697c1b61d3478a081a1c5e7fc20f47f1f5f3c82c7",
|
||||
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz"
|
||||
},
|
||||
"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"
|
||||
"native-image-installable-svm|java17|22.0.0.2": {
|
||||
"sha256": "798947d0a93988929d2b8e3555f7c65225e789124cd99fbc0c3aae5f350175db",
|
||||
"url": "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/native-image-installable-svm-java17-linux-aarch64-22.0.0.2.jar"
|
||||
}
|
||||
},
|
||||
"linux-amd64": {
|
||||
|
@ -39,18 +37,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.elem "native-image-installable-svm" platform.products;
|
||||
withRubySvm = builtins.elem "ruby-installable-svm" platform.products;
|
||||
withPythonSvm = builtins.elem "python-installable-svm" platform.products;
|
||||
withWasmSvm = builtins.elem "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,55 +244,45 @@ 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
|
||||
''
|
||||
}
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit (platform) products;
|
||||
home = graalvmXXX-ce;
|
||||
updateScript = import ./update.nix {
|
||||
inherit lib writeShellScript jq sourcesFilename name config gnused defaultVersion;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1,183 +0,0 @@
|
|||
{ lib, stdenv, requireFile, perl, unzip, glibc, zlib, bzip2, gdk-pixbuf, xorg, glib, fontconfig, freetype, cairo, pango, gtk3, gtk2, ffmpeg, libGL, atk, alsa-lib, setJavaClassPath }:
|
||||
|
||||
let
|
||||
common = javaVersion:
|
||||
let
|
||||
graalvmXXX-ee = stdenv.mkDerivation rec {
|
||||
pname = "graalvm${javaVersion}-ee";
|
||||
version = "20.2.1";
|
||||
srcs = [
|
||||
(requireFile {
|
||||
name = "graalvm-ee-java${javaVersion}-linux-amd64-${version}.tar.gz";
|
||||
sha256 = { "8" = "e0bb182146283a43824dd2c2ceeb89b6ff7a93f9a85da889f8663ce1c2bd3002";
|
||||
"11" = "e5d92d361e7859fe5f88c92d7bb466e285e07f1e4e2d9944948f85fa0e3aee2b";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
(requireFile {
|
||||
name = "native-image-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
|
||||
sha256 = { "8" = "37ac6a62f68adad513057a60513ba75749adf98cc73999b3918afe159900428d";
|
||||
"11" = "f62df715ad529f8b84854644ac99e0a9a349232c7f03985d20a2a8be20edaa44";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
(requireFile {
|
||||
name = "llvm-toolchain-installable-java${javaVersion}-linux-amd64-${version}.jar";
|
||||
sha256 = { "8" = "da98a8c17b0c724b41d1596b57e282a1ecfcbf9140404dfb04b0d4d9fb159d8a";
|
||||
"11" = "fc442c396e92f59d034a69175104cb3565c3d128426bd939cc94c6ceccbb720f";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
(requireFile {
|
||||
name = "ruby-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
|
||||
sha256 = { "8" = "44f6887249f2eb54cba98dd4d9de019da5463d92982e03bf655fffe4bb520daf";
|
||||
"11" = "941f3752ccb097958f49250586f04c305092ded3ea4c1b7d9a0f7632e47fa335";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
(requireFile {
|
||||
name = "python-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
|
||||
sha256 = { "8" = "5c3993c701bd09c6064dcf4a6d9c7489620d0654b03c74682398c788c0211c09";
|
||||
"11" = "de3ebf35ce47dc399d7976cbd09fde0e85f2c10f85bc3fe8f32bb9e2b500ab70";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
(requireFile {
|
||||
name = "wasm-installable-svm-svmee-java${javaVersion}-linux-amd64-${version}.jar";
|
||||
sha256 = { "8" = "c0a334b271fd32c098bb3c42eada7eafb9f536becaa756097eebe4682915b067";
|
||||
"11" = "9e801071992a0ff976bc40b640a8b9368fd8ea890ba986543658fcbaa3a7fd68";
|
||||
}.${javaVersion};
|
||||
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
|
||||
})
|
||||
];
|
||||
nativeBuildInputs = [ unzip perl ];
|
||||
unpackPhase = ''
|
||||
unpack_jar() {
|
||||
jar=$1
|
||||
unzip -o $jar -d $out
|
||||
perl -ne 'use File::Path qw(make_path);
|
||||
use File::Basename qw(dirname);
|
||||
if (/^(.+) = (.+)$/) {
|
||||
make_path dirname("$ENV{out}/$1");
|
||||
system "ln -s $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
|
||||
arr=($srcs)
|
||||
tar xf ''${arr[0]} -C $out --strip-components=1
|
||||
unpack_jar ''${arr[1]}
|
||||
unpack_jar ''${arr[2]}
|
||||
unpack_jar ''${arr[3]}
|
||||
unpack_jar ''${arr[4]}
|
||||
unpack_jar ''${arr[5]}
|
||||
'';
|
||||
|
||||
installPhase = {
|
||||
"8" = ''
|
||||
# BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html
|
||||
substituteInPlace $out/jre/lib/security/java.security \
|
||||
--replace file:/dev/random file:/dev/./urandom \
|
||||
--replace NativePRNGBlocking SHA1PRNG
|
||||
|
||||
# provide libraries needed for static compilation
|
||||
for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
|
||||
ln -s $f $out/jre/lib/svm/clibraries/linux-amd64/$(basename $f)
|
||||
done
|
||||
|
||||
# allow using external truffle-api.jar and languages not included in the distrubution
|
||||
rm $out/jre/lib/jvmci/parentClassLoader.classpath
|
||||
'';
|
||||
"11" = ''
|
||||
# BUG workaround http://mail.openjdk.java.net/pipermail/graal-dev/2017-December/005141.html
|
||||
substituteInPlace $out/conf/security/java.security \
|
||||
--replace file:/dev/random file:/dev/./urandom \
|
||||
--replace NativePRNGBlocking SHA1PRNG
|
||||
|
||||
# provide libraries needed for static compilation
|
||||
for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
|
||||
ln -s $f $out/lib/svm/clibraries/linux-amd64/$(basename $f)
|
||||
done
|
||||
'';
|
||||
}.${javaVersion};
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
# copy-paste openjdk's preFixup
|
||||
preFixup = ''
|
||||
# Set JAVA_HOME automatically.
|
||||
mkdir -p $out/nix-support
|
||||
cat <<EOF > $out/nix-support/setup-hook
|
||||
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
|
||||
EOF
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
rpath="${ { "8" = "$out/jre/lib/amd64/jli:$out/jre/lib/amd64/server:$out/jre/lib/amd64";
|
||||
"11" = "$out/lib/jli:$out/lib/server:$out/lib";
|
||||
}.${javaVersion}
|
||||
}:${
|
||||
lib.strings.makeLibraryPath [ glibc xorg.libXxf86vm xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender
|
||||
glib zlib bzip2 alsa-lib fontconfig freetype pango gtk3 gtk2 cairo gdk-pixbuf atk ffmpeg libGL ]}"
|
||||
|
||||
for f in $(find $out -type f -perm -0100); do
|
||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
|
||||
patchelf --set-rpath "$rpath" "$f" || true
|
||||
done
|
||||
|
||||
for f in $(find $out -type f -perm -0100); do
|
||||
if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
|
||||
done
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [ setJavaClassPath zlib ]; # $out/bin/native-image needs zlib to build native executables
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
echo ${lib.escapeShellArg ''
|
||||
public class HelloWorld {
|
||||
public static void main(String[] args) {
|
||||
System.out.println("Hello World");
|
||||
}
|
||||
}
|
||||
''} > HelloWorld.java
|
||||
$out/bin/javac HelloWorld.java
|
||||
|
||||
# run on JVM with Graal Compiler
|
||||
$out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld
|
||||
$out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World'
|
||||
|
||||
# Ahead-Of-Time compilation
|
||||
$out/bin/native-image --no-server HelloWorld
|
||||
./helloworld
|
||||
./helloworld | fgrep 'Hello World'
|
||||
|
||||
# Ahead-Of-Time compilation with --static
|
||||
$out/bin/native-image --no-server --static HelloWorld
|
||||
./helloworld
|
||||
./helloworld | fgrep 'Hello World'
|
||||
'';
|
||||
|
||||
passthru.home = graalvmXXX-ee;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.graalvm.org/";
|
||||
description = "High-Performance Polyglot VM";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ volth hlolli ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
};
|
||||
in
|
||||
graalvmXXX-ee;
|
||||
in {
|
||||
graalvm8-ee = common "8";
|
||||
graalvm11-ee = common "11";
|
||||
}
|
|
@ -492,6 +492,8 @@ mapAliases ({
|
|||
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
|
||||
gr-ais = gnuradio3_7.pkgs.ais; # Added 2019-05-27, changed 2020-10-16
|
||||
grantlee5 = throw "'grantlee5' has been renamed to/replaced by 'libsForQt5.grantlee'"; # Converted to throw 2022-02-22
|
||||
gr-gsm = gnuradio3_7.pkgs.gsm; # Added 2019-05-27, changed 2020-10-16
|
||||
|
|
|
@ -12792,10 +12792,6 @@ with pkgs;
|
|||
graalvm = graalvm11-ce;
|
||||
};
|
||||
|
||||
inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { })
|
||||
graalvm8-ee
|
||||
graalvm11-ee;
|
||||
|
||||
openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
|
||||
|
||||
lingua-franca = callPackage ../development/compilers/lingua-franca { };
|
||||
|
|
Loading…
Reference in a new issue