graalvmXX-ce: add sourcesPath parameter
In #168816, we removed support for Python/Ruby/WASM to reduce the support burden of GraalVM languages that, arguably, are not really being used. However, the way that `pkgs.graalvmCEPackages.mkGraal` function works right now doesn't allow passing a custom sources file, that would allow someone to compile GraalVM with the additional products (e.g.: Python). This PR adds this possibility. So if someone wants to create a custom graalvm11-ce derivation with Python support, for example, they can do something like this: ```nix let graalvm11-ce-custom = pkgs.graalvmCEPackages.mkGraal { config = { x86_64-linux = { products = [ "graalvm-ce" "python-installable-svm" ]; arch = "linux-amd64"; }; }; defaultVersion = "22.0.0.2"; javaVersion = "11"; platforms = "x86_64-linux"; sourcesPath = /home/someone/graalvm11-ce-sources.json; }; in { environment.systemPackages = [ graalvm11-ce-custom ]; } ```
This commit is contained in:
parent
f699697857
commit
5c9a866551
4 changed files with 28 additions and 26 deletions
|
@ -15,8 +15,8 @@ let
|
||||||
*/
|
*/
|
||||||
graalvm11-ce-release-version = "22.0.0.2";
|
graalvm11-ce-release-version = "22.0.0.2";
|
||||||
graalvm17-ce-release-version = "22.0.0.2";
|
graalvm17-ce-release-version = "22.0.0.2";
|
||||||
graalvm11-ce-dev-version = "22.2.0-dev-20220401_1942";
|
graalvm11-ce-dev-version = "22.2.0-dev-20220415_1945";
|
||||||
graalvm17-ce-dev-version = "22.2.0-dev-20220401_1942";
|
graalvm17-ce-dev-version = "22.2.0-dev-20220415_1945";
|
||||||
|
|
||||||
products = [
|
products = [
|
||||||
"graalvm-ce"
|
"graalvm-ce"
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"darwin-aarch64": {
|
"darwin-aarch64": {
|
||||||
"graalvm-ce|java11|22.2.0-dev-20220414_2112": {
|
"graalvm-ce|java11|22.2.0-dev-20220415_1945": {
|
||||||
"sha256": "7d1d39a7cc2579112e745943fa5b557405b501f5c3c3fde441f9a31c7627d18d",
|
"sha256": "ab81b00177124d746a3871b6e48ce7611e93dd3b4f6dee45d77300ef214fbab8",
|
||||||
"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"
|
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/graalvm-ce-java11-darwin-aarch64-dev.tar.gz"
|
||||||
},
|
},
|
||||||
"native-image-installable-svm|java11|22.2.0-dev-20220414_2112": {
|
"native-image-installable-svm|java11|22.2.0-dev-20220415_1945": {
|
||||||
"sha256": "5ec82588bf493c38656ca7c31fff276342ce1cbadee41309ae7a3486f56f7ba7",
|
"sha256": "9d3753736fe71f55f3fb3bcbdf43271dd96dda0c4b731d11f3f890d5bddf3bbb",
|
||||||
"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"
|
"url": "https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/22.2.0-dev-20220415_1945/native-image-installable-svm-java11-darwin-aarch64-dev.jar"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"darwin-amd64": {
|
"darwin-amd64": {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{ javaVersion
|
{ config
|
||||||
, defaultVersion
|
, defaultVersion
|
||||||
|
, javaVersion
|
||||||
, platforms
|
, platforms
|
||||||
, config
|
, forceUpdate ? false
|
||||||
|
, sourcesPath ? ./. + "/graalvm${javaVersion}-ce-sources.json"
|
||||||
, useMusl ? false
|
, useMusl ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -32,10 +34,11 @@
|
||||||
, gtkSupport ? stdenv.isLinux
|
, gtkSupport ? stdenv.isLinux
|
||||||
, cairo
|
, cairo
|
||||||
, glib
|
, glib
|
||||||
, gtk3
|
# updateScript deps
|
||||||
, writeShellScript
|
|
||||||
, jq
|
|
||||||
, gnused
|
, gnused
|
||||||
|
, gtk3
|
||||||
|
, jq
|
||||||
|
, writeShellScript
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert useMusl -> stdenv.isLinux;
|
assert useMusl -> stdenv.isLinux;
|
||||||
|
@ -44,8 +47,7 @@ let
|
||||||
platform = config.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
platform = config.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
version = platform.version or defaultVersion;
|
version = platform.version or defaultVersion;
|
||||||
name = "graalvm${javaVersion}-ce";
|
name = "graalvm${javaVersion}-ce";
|
||||||
sourcesFilename = "${name}-sources.json";
|
sources = builtins.fromJSON (builtins.readFile sourcesPath);
|
||||||
sources = builtins.fromJSON (builtins.readFile (./. + "/${sourcesFilename}"));
|
|
||||||
|
|
||||||
runtimeLibraryPath = lib.makeLibraryPath
|
runtimeLibraryPath = lib.makeLibraryPath
|
||||||
([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
|
([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
|
||||||
|
@ -285,7 +287,7 @@ let
|
||||||
inherit (platform) products;
|
inherit (platform) products;
|
||||||
home = graalvmXXX-ce;
|
home = graalvmXXX-ce;
|
||||||
updateScript = import ./update.nix {
|
updateScript = import ./update.nix {
|
||||||
inherit lib writeShellScript jq sourcesFilename name config gnused defaultVersion;
|
inherit config defaultVersion forceUpdate gnused jq lib name sourcesPath writeShellScript;
|
||||||
graalVersion = version;
|
graalVersion = version;
|
||||||
javaVersion = "java${javaVersion}";
|
javaVersion = "java${javaVersion}";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ javaVersion
|
{ config
|
||||||
, graalVersion
|
|
||||||
, defaultVersion
|
, defaultVersion
|
||||||
, config
|
, forceUpdate
|
||||||
, sourcesFilename
|
|
||||||
, name
|
|
||||||
, lib
|
|
||||||
, writeShellScript
|
|
||||||
, jq
|
|
||||||
, gnused
|
, gnused
|
||||||
, forceUpdate ? false
|
, graalVersion
|
||||||
|
, javaVersion
|
||||||
|
, jq
|
||||||
|
, lib
|
||||||
|
, name
|
||||||
|
, sourcesPath
|
||||||
|
, writeShellScript
|
||||||
}:
|
}:
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -185,7 +185,7 @@ let
|
||||||
|
|
||||||
newVersion = getLatestVersion graalVersion;
|
newVersion = getLatestVersion graalVersion;
|
||||||
sourcesJson = genSources javaVersion defaultVersion config;
|
sourcesJson = genSources javaVersion defaultVersion config;
|
||||||
sourcesJsonPath = lib.strings.escapeShellArg ./. + "/${sourcesFilename}";
|
sourcesJsonPath = lib.strings.escapeShellArg sourcesPath;
|
||||||
|
|
||||||
# versionKeyInDefaultNix String -> String
|
# versionKeyInDefaultNix String -> String
|
||||||
versionKeyInDefaultNix = graalVersion:
|
versionKeyInDefaultNix = graalVersion:
|
||||||
|
|
Loading…
Reference in a new issue