minecraft-server: fix using latest jre for all minecraft server versions

authored by Joel and committed by tomberek e0843a80 63c488bf

+51 -20
+8 -2
pkgs/games/minecraft-server/default.nix
··· 1 - { callPackage, lib }: 1 + { callPackage, lib, javaPackages }: 2 2 # if you add more versions make sure to add to all-packages.nix 3 3 let 4 4 versions = lib.importJSON ./versions.json; 5 + 5 6 latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions)); 6 7 escapeVersion = builtins.replaceStrings [ "." ] [ "_" ]; 8 + 9 + getJavaVersion = v: (builtins.getAttr "openjdk${toString v}" javaPackages.compiler).headless; 7 10 8 11 packages = lib.mapAttrs' 9 12 (version: value: { 10 13 name = "minecraft-server_${escapeVersion version}"; 11 - value = callPackage ./derivation.nix { inherit (value) version url sha1; }; 14 + value = callPackage ./derivation.nix { 15 + inherit (value) version url sha1; 16 + jre_headless = getJavaVersion (if value.javaVersion == null then 8 else value.javaVersion); # versions <= 1.6 will default to 8 17 + }; 12 18 }) 13 19 versions; 14 20 in
+8
pkgs/games/minecraft-server/update.py
··· 55 55 for download_name, download_info in self.get_manifest()["downloads"].items() 56 56 } 57 57 58 + def get_java_version(self) -> Any: 59 + """ 60 + Return the java version specified in a version's manifest, if it is 61 + present. Versions <= 1.6 do not specify this. 62 + """ 63 + return self.get_manifest().get("javaVersion", {}).get("majorVersion", None) 64 + 58 65 def get_server(self) -> Optional[Download]: 59 66 """ 60 67 If the version has a server download available, return the Download ··· 138 145 139 146 for version, server in servers.items(): 140 147 server["version"] = latest_major_releases[version].id 148 + server["javaVersion"] = latest_major_releases[version].get_java_version() 141 149 return servers 142 150 143 151
+34 -17
pkgs/games/minecraft-server/versions.json
··· 2 2 "1.18": { 3 3 "url": "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar", 4 4 "sha1": "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9", 5 - "version": "1.18.1" 5 + "version": "1.18.1", 6 + "javaVersion": 17 6 7 }, 7 8 "1.17": { 8 9 "url": "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar", 9 10 "sha1": "a16d67e5807f57fc4e550299cf20226194497dc2", 10 - "version": "1.17.1" 11 + "version": "1.17.1", 12 + "javaVersion": 16 11 13 }, 12 14 "1.16": { 13 15 "url": "https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar", 14 16 "sha1": "1b557e7b033b583cd9f66746b7a9ab1ec1673ced", 15 - "version": "1.16.5" 17 + "version": "1.16.5", 18 + "javaVersion": 8 16 19 }, 17 20 "1.15": { 18 21 "url": "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar", 19 22 "sha1": "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07", 20 - "version": "1.15.2" 23 + "version": "1.15.2", 24 + "javaVersion": 8 21 25 }, 22 26 "1.14": { 23 27 "url": "https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar", 24 28 "sha1": "3dc3d84a581f14691199cf6831b71ed1296a9fdf", 25 - "version": "1.14.4" 29 + "version": "1.14.4", 30 + "javaVersion": 8 26 31 }, 27 32 "1.13": { 28 33 "url": "https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar", 29 34 "sha1": "3737db93722a9e39eeada7c27e7aca28b144ffa7", 30 - "version": "1.13.2" 35 + "version": "1.13.2", 36 + "javaVersion": 8 31 37 }, 32 38 "1.12": { 33 39 "url": "https://launcher.mojang.com/v1/objects/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar", 34 40 "sha1": "886945bfb2b978778c3a0288fd7fab09d315b25f", 35 - "version": "1.12.2" 41 + "version": "1.12.2", 42 + "javaVersion": 8 36 43 }, 37 44 "1.11": { 38 45 "url": "https://launcher.mojang.com/v1/objects/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar", 39 46 "sha1": "f00c294a1576e03fddcac777c3cf4c7d404c4ba4", 40 - "version": "1.11.2" 47 + "version": "1.11.2", 48 + "javaVersion": 8 41 49 }, 42 50 "1.10": { 43 51 "url": "https://launcher.mojang.com/v1/objects/3d501b23df53c548254f5e3f66492d178a48db63/server.jar", 44 52 "sha1": "3d501b23df53c548254f5e3f66492d178a48db63", 45 - "version": "1.10.2" 53 + "version": "1.10.2", 54 + "javaVersion": 8 46 55 }, 47 56 "1.9": { 48 57 "url": "https://launcher.mojang.com/v1/objects/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar", 49 58 "sha1": "edbb7b1758af33d365bf835eb9d13de005b1e274", 50 - "version": "1.9.4" 59 + "version": "1.9.4", 60 + "javaVersion": 8 51 61 }, 52 62 "1.8": { 53 63 "url": "https://launcher.mojang.com/v1/objects/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar", 54 64 "sha1": "b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd", 55 - "version": "1.8.9" 65 + "version": "1.8.9", 66 + "javaVersion": 8 56 67 }, 57 68 "1.7": { 58 69 "url": "https://launcher.mojang.com/v1/objects/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar", 59 70 "sha1": "4cec86a928ec171fdc0c6b40de2de102f21601b5", 60 - "version": "1.7.9" 71 + "version": "1.7.9", 72 + "javaVersion": 8 61 73 }, 62 74 "1.6": { 63 75 "url": "https://launcher.mojang.com/v1/objects/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar", 64 76 "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87", 65 - "version": "1.6.4" 77 + "version": "1.6.4", 78 + "javaVersion": null 66 79 }, 67 80 "1.5": { 68 81 "url": "https://launcher.mojang.com/v1/objects/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar", 69 82 "sha1": "f9ae3f651319151ce99a0bfad6b34fa16eb6775f", 70 - "version": "1.5.2" 83 + "version": "1.5.2", 84 + "javaVersion": null 71 85 }, 72 86 "1.4": { 73 87 "url": "https://launcher.mojang.com/v1/objects/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar", 74 88 "sha1": "2f0ec8efddd2f2c674c77be9ddb370b727dec676", 75 - "version": "1.4.7" 89 + "version": "1.4.7", 90 + "javaVersion": null 76 91 }, 77 92 "1.3": { 78 93 "url": "https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar", 79 94 "sha1": "3de2ae6c488135596e073a9589842800c9f53bfe", 80 - "version": "1.3.2" 95 + "version": "1.3.2", 96 + "javaVersion": null 81 97 }, 82 98 "1.2": { 83 99 "url": "https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar", 84 100 "sha1": "d8321edc9470e56b8ad5c67bbd16beba25843336", 85 - "version": "1.2.5" 101 + "version": "1.2.5", 102 + "javaVersion": null 86 103 } 87 104 }
+1 -1
pkgs/top-level/all-packages.nix
··· 30810 30810 30811 30811 minecraft = callPackage ../games/minecraft { }; 30812 30812 30813 - inherit (import ../games/minecraft-server { inherit callPackage lib; }) 30813 + inherit (import ../games/minecraft-server { inherit callPackage lib javaPackages; }) 30814 30814 minecraft-server_1_2 30815 30815 minecraft-server_1_3 30816 30816 minecraft-server_1_4