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";
|
||||
graalvm17-ce-release-version = "22.0.0.2";
|
||||
graalvm11-ce-dev-version = "22.2.0-dev-20220401_1942";
|
||||
graalvm17-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-20220415_1945";
|
||||
|
||||
products = [
|
||||
"graalvm-ce"
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"darwin-aarch64": {
|
||||
"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"
|
||||
"graalvm-ce|java11|22.2.0-dev-20220415_1945": {
|
||||
"sha256": "ab81b00177124d746a3871b6e48ce7611e93dd3b4f6dee45d77300ef214fbab8",
|
||||
"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": {
|
||||
"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"
|
||||
"native-image-installable-svm|java11|22.2.0-dev-20220415_1945": {
|
||||
"sha256": "9d3753736fe71f55f3fb3bcbdf43271dd96dda0c4b731d11f3f890d5bddf3bbb",
|
||||
"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": {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
{ javaVersion
|
||||
{ config
|
||||
, defaultVersion
|
||||
, javaVersion
|
||||
, platforms
|
||||
, config
|
||||
, forceUpdate ? false
|
||||
, sourcesPath ? ./. + "/graalvm${javaVersion}-ce-sources.json"
|
||||
, useMusl ? false
|
||||
}:
|
||||
|
||||
|
@ -32,10 +34,11 @@
|
|||
, gtkSupport ? stdenv.isLinux
|
||||
, cairo
|
||||
, glib
|
||||
, gtk3
|
||||
, writeShellScript
|
||||
, jq
|
||||
# updateScript deps
|
||||
, gnused
|
||||
, gtk3
|
||||
, jq
|
||||
, writeShellScript
|
||||
}:
|
||||
|
||||
assert useMusl -> stdenv.isLinux;
|
||||
|
@ -44,8 +47,7 @@ let
|
|||
platform = config.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
version = platform.version or defaultVersion;
|
||||
name = "graalvm${javaVersion}-ce";
|
||||
sourcesFilename = "${name}-sources.json";
|
||||
sources = builtins.fromJSON (builtins.readFile (./. + "/${sourcesFilename}"));
|
||||
sources = builtins.fromJSON (builtins.readFile sourcesPath);
|
||||
|
||||
runtimeLibraryPath = lib.makeLibraryPath
|
||||
([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
|
||||
|
@ -285,7 +287,7 @@ let
|
|||
inherit (platform) products;
|
||||
home = graalvmXXX-ce;
|
||||
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;
|
||||
javaVersion = "java${javaVersion}";
|
||||
};
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ javaVersion
|
||||
, graalVersion
|
||||
{ config
|
||||
, defaultVersion
|
||||
, config
|
||||
, sourcesFilename
|
||||
, name
|
||||
, lib
|
||||
, writeShellScript
|
||||
, jq
|
||||
, forceUpdate
|
||||
, gnused
|
||||
, forceUpdate ? false
|
||||
, graalVersion
|
||||
, javaVersion
|
||||
, jq
|
||||
, lib
|
||||
, name
|
||||
, sourcesPath
|
||||
, writeShellScript
|
||||
}:
|
||||
|
||||
/*
|
||||
|
@ -185,7 +185,7 @@ let
|
|||
|
||||
newVersion = getLatestVersion graalVersion;
|
||||
sourcesJson = genSources javaVersion defaultVersion config;
|
||||
sourcesJsonPath = lib.strings.escapeShellArg ./. + "/${sourcesFilename}";
|
||||
sourcesJsonPath = lib.strings.escapeShellArg sourcesPath;
|
||||
|
||||
# versionKeyInDefaultNix String -> String
|
||||
versionKeyInDefaultNix = graalVersion:
|
||||
|
|
Loading…
Reference in a new issue