1{
2 callPackage,
3 lib,
4 javaPackages,
5}:
6let
7 versions = lib.importJSON ./versions.json;
8
9 latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
10 escapeVersion = builtins.replaceStrings [ "." ] [ "-" ];
11
12 getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless;
13
14 packages = lib.mapAttrs' (version: value: {
15 name = "vanilla-${escapeVersion version}";
16 value = callPackage ./derivation.nix {
17 inherit (value) version url sha1;
18 jre_headless = getJavaVersion (
19 if value.javaVersion == null then
20 8
21 else if value.javaVersion == 16 then
22 17
23 else
24 value.javaVersion
25 ); # versions <= 1.6 will default to 8
26 };
27 }) versions;
28in
29lib.recurseIntoAttrs (
30 packages
31 // {
32 vanilla = builtins.getAttr "vanilla-${escapeVersion latestVersion}" packages;
33 }
34)